我正在为我的应用程序使用单点登录 (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 会话?