SSO与Spring安全

时间:2015-12-16 01:10:26

标签: spring spring-security single-sign-on

我有一个应用程序,其中用户已经过SSO的预授权并登陆我的页面,现在我需要调用另一个rest api来获取一些数据,这些数据在另一台服务器上运行,但它将被使用相同的身份验证。所以我只是想知道,我如何提供身份验证过程?我是否需要设置cookie从传入请求中获取的内容。

1 个答案:

答案 0 :(得分:0)

当请求登陆您的页面时,它应该有一个令牌或密钥,在http AUTHORIZATION标题中,这应该与过滤器一起使用

公共类AuthFilter扩展了OncePerRequestFilter {

private String failureUrl;

private SimpleUrlAuthenticationFailureHandler failureHandler = new SimpleUrlAuthenticationFailureHandler();

@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
        throws ServletException, IOException {

    try {
        // check your SSO token here
        chain.doFilter(request, response);
    } catch (OnlineDriverEnquiryException ode) {
        failureHandler.setDefaultFailureUrl(failureUrl);
        failureHandler.onAuthenticationFailure(request, response, new BadCredentialsException("Captcha invalid!"));
    }
}

public String getFailureUrl() {

    return failureUrl;
}

public void setFailureUrl(String failureUrl) {

    this.failureUrl = failureUrl;
}

}

另请阅读有关如何设置自动配置的帖子。 Spring security without form login