我有一个委托,通过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()"的正确替代方法是什么?
答案 0 :(得分:0)
java:comp/env
仅查找容器管理的资源,并且在运行时是只读的。如果需要,可以公开从委托中获取Josso凭据的本地接口。
@Local
public interface AuthenticatorLocal {
void getJossoCredentials();
}
否则,您只需使用context.getCallerPrincipal()
。