2014-10-28 46 views
1

四郎文件说,阿帕奇四郎得到受试者的方法和Netty的背景下

“四郎获取基于通过其自己的框架集成代码当前执行的线程主题的数据,这是使用四郎的首选方式”

如果Shiro从当前正在执行的线程获取主题,并且Netty使用1个线程处理多个请求。那么,如何让主题方法返回给定请求的主题信息?如果Shiro没有处理这种情况,我是否需要添加额外的机制来实现这一点?

谢谢。

回答

0

我不知道netty是如何工作的,但是如果你可以使用过滤器来配置它,shiro会确保在请求结束时清除threadlocal信息。

如果你不能使用过滤器,你可能会在你自己的处理过程中把主题放在/从线程中移除。

四郎使用类ThreadContext此: http://shiro.apache.org/static/1.2.3/apidocs/org/apache/shiro/util/ThreadContext.html

方法ThreadContext.bind(安全管理器)和ThreadContext.bind(主题)是关键的方法。线程完成后,调用ThreadCOntext.remove()。

如果您查看此页面,您将在单元测试中看到线程正在运行:http://shiro.apache.org/testing.html