java – SessionListener中的Shiro HttpSession?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – SessionListener中的Shiro HttpSession?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1778字,纯文字阅读大概需要3分钟。
内容图文
我正在尝试将我的webapp的会话管理(目前由Catalina / Tomcat处理)替换为shiro本地会话管理.
这应该是一个相当容易的工作,如shiro网站所宣传:
Transparent HttpSession support – If you are using Shiro’s native
sessions, we have implemented HTTP Session API and the Servlet 2.5 API
so you don’t have to change any of your existing web code to use
Shiro.
所以之后,你用Shiro的DefaultWebSessionManager替换了本地会话管理器,一切都应该开箱即用.
除了某个javax.servlet.http.HttpSessionListener之外,我的webapp也是如此.自使用Shiro的会话管理以来,此监听器不再获取事件.
不用担心我的想法! Shiro提供了自己的org.apache.shiro.session.SessionListener接口,可以链接到会话管理器.
但是,此接口与javax.servlet.http.HttpSessionListener有很大不同.不再传递HttpSession对象,而是Shiro Listener将自己的org.apache.shiro.session.Session对象传递给事件.
我现有的实现仅适用于HttpSession对象.我发现Shiro Session可以转换为HttpSession:
// HttpServletRequest currentRequest;
// ServletContext servletContext;
// Session session;
HttpSession httpSession = new ShiroHttpSession(session, currentRequest, servletContext);
但是,无法从Shiro SessionListener访问HttpServletRequest和servletContext.
任何想法如何解决这个问题,例如你能回答这两个问题中的一个吗?
>为什么不再使用旧的javax.servlet.http.HttpSessionListener
叫什么名字?
>如何将Shiro Session对象转换为HttpSession
在Shiro SessionListener中的对象?
解决方法:
Why is the old
javax.servlet.http.HttpSessionListener
no longer
called?
正如您所解释的那样,会话管理现在通过Shiro而不是通过Servlet容器来处理.因此,即使您的HttpSessionListener已注册,您的Servlet容器也不会创建任何HttpSession对象,因此不会使用任何HttpSessionListener回调.
How do I transform Shiro
Session
objects toHttpSession
objects in the
shiroSessionListener
?
你没有,你不应该.
如果你解释你想用HttpSession做什么,我们或许可以找到替代方案.
内容总结
以上是互联网集市为您收集整理的java – SessionListener中的Shiro HttpSession?全部内容,希望文章能够帮你解决java – SessionListener中的Shiro HttpSession?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。