【发布时间】:2013-09-21 23:26:57
【问题描述】:
我有一个带有 Spring MVC 3.2 和 Spring Security 3.1 的 Web 应用程序
我正在使用基于角色的安全性,并已实现 UserDetailsService 和 UserDetails 以提供 GrantedAuthority。
我已经使用 jsr250-annotations 启用了全局方法安全性
到目前为止,一切都按预期工作,登录的用户方法访问权限仅限于声明的角色。
我还有一个进一步的要求,即作为具有“系统角色”的特殊用户运行在应用程序初始化期间调用的某些方法,理想情况下是按照 JavaEE RunAs 的方式运行。 我不确定如何在 Spring Security 中执行此操作。
我是否应该尝试创建一个PreAuthenticatedAuthenticationToken,其中包含一些虚构的值和“系统角色”权限。
然后我可以做类似SecurityContextHolder.getContext().setAuthentication(token);
初始化应用程序时。
或者,我应该尝试使用 RunAsManager。这听起来像是我需要的,但我还没有找到任何可以实际使用它的简单示例。
我对 Spring Security 还很陌生,我不确定最好的方法。
【问题讨论】:
标签: spring spring-mvc spring-security