恢复发送到EJB

时间:2016-02-29 11:58:00

标签: java ejb cdi initial-context josso

我有一个委托,通过InitialContext as shown here实现相应的Bean发送凭证(Josso身份验证)。

在Bean,我尝试使用SessionContext恢复Josso数据,如下所示:

@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()"的正确替代方法是什么?

1 个答案:

答案 0 :(得分:0)

java:comp/env仅查找容器管理的资源,并且在运行时是只读的。如果需要,可以公开从委托中获取Josso凭据的本地接口。

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

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