session 未进入 session Tomcat 的单点登录

标签 session tomcat single-sign-on

我正在为我的应用程序使用单点登录 (SSO)。我已经扩展了 tomcat valve 的 SSO 并添加了以下方法来获取 SSO session 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 为空,反向映射没有该应用程序的 session 。但是一旦完成身份验证,我就可以登录了。

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

最佳答案

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

关于 session 未进入 session Tomcat 的单点登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18980392/

相关文章:

spring - 2023 [localhost-startStop-1] 信息 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping 在运行 tomcat 时未加载

java - Maven tomcat 插件 : tomcat7:run or tomcat7:run-war?

single-sign-on - 这个 SAML SSO 实现是否正确?

多种登录类型之间的 Java EE 安全重定向

active-directory - 在哪里可以获得用于开发的一次性 Active Directory 服务器?

java - JSESSIONID 持续时间

php - 为什么我的 cookie 不工作 PHP

mysql - java.lang.ClassNotFoundException : org. apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory

Magento : Can't add product to cart after order

java - session - servlet,在 sevlet 中,我将静态变量设置为某些内容,并且这对于所有 session 都保持不变