6

我有这个代码来创建一个 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;
};

现在,在代码的其他地方(auth那里不知道 LoginContext)我有一个 EJB,它执行 ainitialContext.lookup( jndiName )和 anarrow()来访问 JBoss 应用程序服务器上的 Bean。这narrow只有在第一步的登录信息正确的情况下才会成功。

问题

登录信息如何从 传播LoginContextnarrow()?我看不出这两个地方有什么联系。

此外,我如何在一个客户端内进行两次或更多不同的登录?

4

1 回答 1

6

我在JBoss 文档(第 8.4.1 章)中找到了一个很好的解释:

jboss jaas 登录

login()调用仅将名称和密码绑定到客户端的 JBoss EJB 层。所有后续的 EJB 调用都将使用这些凭据并将它们传递给被调用的 EJB 方法。

于 2010-05-03T21:30:17.213 回答