java LoginContext.login()如何工作?
我有这个代码来创建一个java客户端的配置来连接到JBoss应用程序服务器:
System.setProperty( "java.security.auth.login.config", "auth.conf" ); LoginContext auth = new LoginContext( "myAuth", new LoginCallbackHandler( username, password ) ); auth.login();
auth.conf
文件包含以下行:
myAuth { org.jboss.security.ClientLoginModule required; };
现在,代码中的其他地方(LoginContext auth
在那里不知道)我有一个EJB,它执行initialContext.lookup( jndiName )
和一个narrow()
来访问JBoss应用程序服务器上的Bean。 如果第一步的登录信息正确,则此narrow
仅成功。
题
登录信息如何从LoginContext
传播到narrow()
? 我认为这两个地方之间没有任何联系。
而且,我怎么能在一个客户端内进行两个或更多不同的登录?
我在JBoss文档中找到了一个很好的解释(第8.4.1节) :
login()
调用仅将名称和密码绑定到客户端的JBoss EJB层。 所有后续EJB调用都将使用这些凭据并将它们传递给调用的EJB方法。