【发布时间】:2015-03-06 00:16:08
【问题描述】:
我们的应用程序的身份验证是通过 siteminder 代理进行的,但授权是通过我们的应用程序控制的。
我正在使用 org.springframework.security.web.authentication.preauth.RequestHeaderAuthenticationFilter 来检查标头。我还定义了 UserDetailsService 来加载用户详细信息。
我还需要为用户设置角色,以便我可以使用spring安全标签库和其他spring方法来检查角色并显示选项。
我该如何实现?
我在我的用户详细信息服务实现中尝试了以下语句,但似乎不起作用。
Authentication auth = new UsernamePasswordAuthenticationToken(user, null, roles);
SecurityContextHolder.getContext().setAuthentication(auth);
我还阅读了有关 AbstractPreAuthenticatedProcessingFilter 类的信息,但看起来这可能对此没有用处。
在这个问题上的任何帮助都会非常有帮助。
谢谢!
【问题讨论】:
-
您的 RequestHeaderAuthenticationFilter 扩展了您正在谈论的 AbstractPreAuthenticatedProcessingFilter。你在那里很好。但是您还需要设置 PreAuthenticatedAuthenticationProvider。您需要提供您的安全配置文件以供他人更好地帮助您。
-
感谢安加德的回复。我使用的是 Spring Security 提供的 PreAuthenticatedAuthenticationProvider,但没有扩展它来设置角色。
标签: spring-security roles pre-authentication