我有一个启用Spring Boot的应用程序,其登录由第三方Siteminder应用程序控制。身份验证成功后,Sitemeinder会重定向到我们的应用程序URL。我们从Siteminder获取HttpRequest并处理请求。
现在,如何在这种情况下启用Spring安全性,以便根据角色授权用户。
@Controller
public class LoginController
@RequestMapping( value= "/")
public void requestProcessor(HttpServletRequest request)
{
.
.
.}
上述控制器的请求映射器读取来自SiteMinder的请求并处理具有用户登录角色的请求。我们在哪里可以启用Spring Security来向用户授权页面和服务方法。
答案 0 :(得分:0)
Spring Security处理请求在Spring安全配置中配置的filter中到达您的控制器之前。 有关如何使用SiteMinder配置弹簧安全性的文档。
配置中的规则将定义对资源的访问权限
答案 1 :(得分:0)
这是PreAuthenticated安全类的方案:
看看这里:
http://docs.spring.io/spring-security/site/docs/current/reference/html/preauth.html
答案 2 :(得分:-1)
取决于您在会话中获得的内容。如果以某种方式你可以从会话中获取用户和密码,你可以直接从代码验证用户:
@Autowired
AuthenticationManager authenticationManager;
...
public boolean autoLogin(String username, String password) {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, password);
Authentication auth = authenticationManager.authenticate(token);
if (auth.isAuthenticated()) {
logger.debug("Succeed to auth user: " + username);
SecurityContextHolder.getContext().setAuthentication(auth);
return true;
}
return false;
}