2013-09-24 69 views
0

我正在爲我的應用程序使用單點登錄(SSO)。我擴展了tomcat的SSO並添加了以下方法來獲取SSO會話ID。Session沒有進入單點登錄會話Tomcat

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會話?

回答

0

我找到了問題的解決方案。實際上,如果我們不在web.xml中提供任何頁面,那麼該頁面會繞過SSO會話。第二種情況下,我發現相同的問題是,如果url模式不符合規範或無效的url模式,那麼也會被SSO會話忽略。