首页 > 解决方案 > Ejb Websphere 登录返回空主题

问题描述

我正在尝试让主题执行部署在我的 WebSphere 实例上的 EJB。

正如文档所说,我正在尝试使用此身份验证

Subject subject;
LoginContext lc = null;
InitialContext initialContext = createInitialContext(serverName, serverPort);
initialContext.lookup(""); 
lc = new LoginContext(JAAS_MODULE, new WSCallbackHandlerImpl(userId, "", password));
lc.login();
subject = lc.getSubject();



InitialContext createInitialContext(String serverName, String serverPort) throws NamingException {
    Hashtable<String, String> env = new Hashtable<String, String>();
    env.put(Context.INITIAL_CONTEXT_FACTORY, INITIAL_CONTEXT_FACTORY);

    String providerUrl = String.format("corbaloc:iiop:%s:%s", serverName, serverPort);
    env.put(Context.PROVIDER_URL, providerUrl);

    return new InitialContext(env);
}

在 lc.login 调用之后,主题内部不包含任何主体。我只是收到一个空的主体,它对执行 ejb 没用。还有其他人遇到过这个问题吗?

标签: javaloginejbwebsphere

解决方案


推荐阅读