0

我正在为我的应用程序使用单点登录 (SSO)。我已经扩展了 tomcat Valve 的 SSO 并添加了以下方法来获取 SSO 会话 id。

 public String getSSOId(String sessionId){
    SessionAttrManager.log("getSSOID " +sessionId);
    Set<Session> keySet = reverse.keySet();
    String SSOId = "";
    Iterator<Session> iterator = keySet.iterator();
    while(iterator.hasNext()){
        Session session = iterator.next();
    SessionAttrManager.log("getSSOID "+session.getId());
        if(session.getId().equals(sessionId)){
            SSOId = reverse.get(session)!=null?(String)reverse.get(session):null;

 }
   }
    return SSOId;
}

每个应用程序都有基于表单的身份验证。有一个应用程序的 SSO 为空,反向映射没有该应用程序的会话。但是一旦完成身份验证,我就可以登录它。

任何可能的原因,为什么会话 ID 不会进入 SSO 会话?

4

1 回答 1

0

我找到了问题的解决方案。实际上,如果我们在 web.xml 中不提供任何页面,则该页面会绕过 SSO 会话。我发现相同问题的第二种情况是,如果 url 模式不符合规范或无效的 url 模式,SSO 会话也将忽略它。

于 2013-10-03T18:24:18.430 回答