我有一个带有 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 还很陌生,我不确定最好的方法。