首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Shiro为每个getSession()创建一个新会话

Shiro为每个getSession()创建一个新会话
EN

Stack Overflow用户
提问于 2012-08-08 00:07:03
回答 1查看 1.8K关注 0票数 1

我在tapestry应用程序中使用shiro (1.2.0)。现在我只想把它用于会话管理。虽然默认会话管理(使用ServletContainerSessionManager)有效,但当我尝试切换到本机会话时,shiro停止跟踪它们:

代码语言:javascript
复制
public static WebSecurityManager decorateWebSecurityManager(WebSecurityManager manager) {
  if(manager instanceof TapestryRealmSecurityManager) {
    DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
    MemorySessionDAO sessionDAO = new MemorySessionDAO();
    sessionManager.setSessionDAO(sessionDAO);
    ((TapestryRealmSecurityManager) manager).setSessionManager(sessionManager);
  }
  return null;
}

调试输出:

代码语言:javascript
复制
07-08-12 17:47:57:339 - {TRACE} util.ThreadContext Thread [1072280360@qtp-1531443370-6];  Bound value of type [$WebSecurityManager_19518d48138a] for key [org.apache.shiro.util.ThreadContext_SECURITY_MANAGER_KEY] to thread [1072280360@qtp-1531443370-6]
07-08-12 17:47:57:339 - {TRACE} mgt.DefaultSecurityManager Thread [1072280360@qtp-1531443370-6];  Context already contains a SecurityManager instance.  Returning.
07-08-12 17:47:57:339 - {TRACE} mgt.AbstractValidatingSessionManager Thread [1072280360@qtp-1531443370-6];  Attempting to retrieve session with key org.apache.shiro.web.session.mgt.WebSessionKey@1dc49089
07-08-12 17:47:57:339 - {DEBUG} servlet.SimpleCookie Thread [1072280360@qtp-1531443370-6];  Found 'JSESSIONID' cookie value [sbrxl74ij1v8]
07-08-12 17:47:57:339 - {DEBUG} mgt.DefaultSecurityManager Thread [1072280360@qtp-1531443370-6];  Resolved SubjectContext context session is invalid.  Ignoring and creating an anonymous (session-less) Subject instance.
org.apache.shiro.session.UnknownSessionException: There is no session with id [sbrxl74ij1v8]
at     org.apache.shiro.session.mgt.eis.AbstractSessionDAO.readSession(AbstractSessionDAO.java:170)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-08 18:13:51

问题是我忘了删除@Persist注释,它默认使用会话来存储数据。这导致tapestry用它自己的值覆盖了shiro的JSESSIONID cookie。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11849903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档