SecurityContextHolder.getContext().getAuthentication()为啥Security3.1和2.0执行上面语句结果不同?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SecurityContextHolder.getContext().getAuthentication()为啥Security3.1和2.0执行上面语句结果不同?相关的知识,希望对你有一定的参考价值。
参考技术ASpring security不完全是依赖HttpSession来保存用户对象,而是放在threadlocal里面的。
通过HttpSessionIntegrationFilter,也会同步到HttpSession,在非daoservlet环境,可以直接通过SecurityContextHolder获取,在Serlvet环境,也可以用session.getAttribute(...)得到,那个key。
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>
org.springframework.web.filter.DelegatingFilterProxy
</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
扩展资料:
Spring Security对Web安全性的支持大量地依赖于Servlet过滤器。这些过滤器拦截进入请求,并且在应用程序处理该请求之前进行某些安全处理。 Spring Security提供有若干个过滤器,它们能够拦截Servlet请求,并将这些请求转给认证和访问决策管理器处理,从而增强安全性。根据自己的需要,可以使用适当的过滤器来保护自己的应用程序。
如果使用过Servlet过滤器且令其正常工作,就必须在Web应用程序的web.xml文件中使用<filter> 和<filter-mapping>元素配置它们。虽然这样做能起作用,但是它并不适用于使用依赖注入进行的配置。
参考资料来源:百度百科-spring security
以上是关于SecurityContextHolder.getContext().getAuthentication()为啥Security3.1和2.0执行上面语句结果不同?的主要内容,如果未能解决你的问题,请参考以下文章