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