我们的应用程序的身份验证是通过siteminder代理发生的,但授权是通过我们的应用程序控制的。Spring安全 - 预认证 - 数据库中定义的授权和集合角色
我正在使用org.springframework.security.web.authentication.preauth.RequestHeaderAuthenticationFilter检查标题。我还定义了UserDetailsService来加载用户的详细信息。
我还需要为用户设置角色,以便我可以使用弹簧安全标记库和其他弹簧方法来检查角色并显示选项。
我该如何实施?
我已经在我的用户详细信息服务实现中尝试了下面的语句,但似乎没有工作。
Authentication auth = new UsernamePasswordAuthenticationToken(user, null, roles);
SecurityContextHolder.getContext().setAuthentication(auth);
我也读过关于AbstractPreAuthenticatedProcessingFilter类,但看起来像这可能没有用于此目的。
在这个问题上的任何帮助将是非常有益的。
谢谢!
您的_RequestHeaderAuthenticationFilter_扩展了您正在讨论的_AbstractPreAuthenticatedProcessingFilter_。你很好。但是您还需要设置_PreAuthenticatedAuthenticationProvider_。你需要提供你的安全配置文件给别人来帮助你更好。 – Angad
谢谢你对Angad的回应。我使用Spring Security提供的PreAuthenticatedAuthenticationProvider,但没有扩展它来设置角色。 – Sanjeev