DefaultWebSessionManager不适用于Chrome

 帅哥大香蕉 发布于 2023-01-30 20:44

好吧,我已经在Shiro的论坛上发布了以下问题1周但直到现在都没有回复.

我只是想用一个简单的Spring应用程序来使用Shiro.安全管理器被定义为默认DefaultWebSecurityManager设置会话管理器ServletContainerSessionManager,它适用于我.但是,在我更改会话管理器之后DefaultWebSessionManager,我想使用Shiro的本机会话,它不适用于Chrome.我挖出了一些以下信息: -

使用时DefaultWebSessionManager,Shiro尝试从请求cookie获取会话ID.逻辑SimpleCookie是循环所有请求cookie并在cookie的名称为"JSESSIONID"时返回.但是,在Chrome的请求中,有2个名为"JSESSIONID"的Cookie.第一个的值与请求中的"requestedSessionid"不同,另一个等于.这导致在身份验证成功后重新登录到登录页面.为了简单起见,现在的过程是:访问任何地址 - >通过Shiro重定向到登录页面 - >提交主体和凭证 - >认证成功并通过Shiro重定向到主页 - >新请求到来并找到另一个会话ID在四郎没有被缓存,导致InvalidSessionExceptionresolveSession的方法DefaultSecurityManager- >重定向到登录页面.

使用时ServletContainerSessionManager,由于会话ID来自request.getSession(false),因此可以在重定向后找到会话.

我的问题是,如果这是一个缺陷或任何配置或代码可以解决这个问题?请注意,Chrome会解决此问题.我想这是关于Chrome的缓存,但你能解释一下吗?

以下是您复制的必要资料: -

web.xml中


  test.shiro.framework.WebSessionListener


  org.springframework.web.context.ContextLoaderListener


  contextConfigLocation
  /WEB-INF/spring-servlet.xml
  



  shiroFilter
  org.springframework.web.filter.DelegatingFilterProxy
  
    targetFilterLifecycle
    true
  



  shiroFilter
  /*



  spring
    org.springframework.web.servlet.DispatcherServlet
    1



    spring
    /controller/*

为spring-servlet.xml:


  
  
    
  

  
    
      /** = authc 
    
  




  
  
    
  





  
    
      huzj=12345678,authc 
      guodg=12345678,operator 
      sadd=12345678,guest 
    
  
  
    
      authc=* 
      operator=book:* 
      guest=book:view:* 
    
  

2月18日更新:进一步的测试表明,当我试图从改变问题只发生ServletContainerSessionManagerDefaultWebSessionManager.我猜chrome在这种情况下错误地记录了一个垃圾饼干.

毕竟我尝试了@ paulochf的解决方案,它确实有效.我再次调试并相信你明白了.非常感谢!

1 个回答
  • 在我的工作中,我们遇到了同样的问题,但我们已经解决了.

    使用谷歌浏览器,该应用程序无法保持会话,因为它的ID几乎在每次请求时都发生了变化.与此同时,Firefox没有它.转向DefaultWebSessionManager的人在网上使用了一个例子,它将cookie名称设置为"cookie".

    他决定将cookie的名称更改为另一个,例如,

    cookie = org.apache.shiro.web.servlet.SimpleCookie 
    cookie.name = your.cookie
    cookie.path = /
    sessionManager.sessionIdCookie = $cookie
    

    我希望这对你有用.

    2023-01-30 20:49 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有