当前位置:  开发笔记 > 编程语言 > 正文

Acegi/Spring安全性是否支持getUserPrincipal()?

如何解决《Acegi/Spring安全性是否支持getUserPrincipal()?》经验,为你挑选了1个好方法。

我需要使用Acegi/Spring安全性连接现有应用程序.

为了开始,我正在寻找一个简单的信息:在这个上下文中,从我的应用程序调用的HttpServletRequest.getUserPrincipal()是否正确返回通过Spring获得的用户名(而不是使用特定于Spring的对象)?我用Google搜索了相互矛盾的信息.

我假设如果使用过滤器实现Acegi,它可以重载Servlet API的getUserPrincipal(),对吗?

附属问题:如果默认不是这种情况,有没有办法打开它?

谢谢,

-Erik



1> lsiu..:

正如之前的用户所回答的那样,spring security支持getUserPrincipal和isUserInRole.以下是Spring安全性的方法.

配置spring时,它可以加载以下过滤器:

http://static.springframework.org/spring-security/site/reference/html/ns-config.html#filter-stack

作为标准过滤器配置的一部分,过滤SecurityContextHolderAwareRequestFilter器已加载.

检查过滤器@ https://fisheye.springsource.org/browse/spring-security/tags/spring-security-parent-2.0.4/core/src/main/java/org/springframework/security/wrapper/SecurityContextHolderAwareRequestFilter. java吗?R = 2514

您可以看到它包装并将HttpServletRequest对象更改为SecurityContextHolderAwareRequestWrapper扩展的类,该类HttpServletRequestWrapper实现HttpServletRequest并将其反馈回标准的Servlet Filter doFilter链.由于spring安全过滤器应该配置为第一个过滤器,因此所有后续类都将看到SecurityContextHolderAwareRequestWrapper.这包括此过滤器后面的JSP页面或Servlet.

当你拨打电话到isUserInRolegetUserPrincipal从JSP页面,Servlet或者该过滤器后的任何框架,它调用HttpServletRequest使用Spring Security的实现.

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有