1

我在 Glassfish 3.1.2 中使用带有用户名、密码和领域的 ProgrammaticLogin,它运行良好。无论如何,当我调用 context.getCallerPrincipal() 时,我得到 org.glassfish.security.common.PrincipalImpl 和 context.getCallerPrincipal().getName() ,它返回用户名。

有什么方法可以通过 ProgrammaticLogin 传递 Principle,因此它可以在我的 ejb 中传递并从 SessionContext - context.getCallerPrincipal() 中获得?

4

1 回答 1

0

我猜您处于无法通过注释进行资源注入的环境中。您可以尝试通过手动 JNDI 查找来获取所需 EJB 的实例。

例子:

InitialContext init = new InitialContext();
YourBean bean = (YourBean) init.lookup(JNDI_NAME_OF_YOUR_BEAN);

现在您应该能够将 Principal 传递给您的 bean。

于 2012-12-12T09:58:59.653 回答