1

我有一个委托,它通过 InitialContext 实例化相应的 Bean 发送凭据(Josso 身份验证),如下所示

在 Bean,我尝试过使用 SessionContext 恢复 Josso Data,如下图所示:

@Resource private SessionContext context;

我面临的问题是我无法在 Bean 范围内检索 Josso 数据。我已经尝试过“context.getEnvironment()”,但这种方法已被弃用,我没有找到任何替代方法。

为了找到解决方案,我尝试过:

context.lookup(JNDI_BEAN_NAME);
context.lookup("java:comp/env/JNDI_BEAN_NAME")
context.lookup("java:comp/env")

但是前两个命令只返回 Bean 本身,最后一个只返回全局变量。

“context.getEnvironment()”的正确替代方法是什么?

4

1 回答 1

0

java:comp/env仅查找容器管理的资源,并且在运行时是只读的。如果您愿意,您可以公开一个从代理获取 Josso 凭据的本地接口。

@Local
public interface AuthenticatorLocal {
    void getJossoCredentials();
}

否则,您可以只使用context.getCallerPrincipal().

于 2016-03-01T02:55:47.763 回答