2015-12-16 3 views
0

У меня есть приложение, в котором пользователь предварительно авторизовался SSO и приземляется на мою страницу, теперь мне нужно сделать вызов другому приложению api, чтобы получить некоторые данные, которые запускаются на другом сервере, но он будет использовать ту же аутентификацию. Поэтому я просто хотел узнать, как я могу обеспечить процесс аутентификации? Мне нужно установить cookie, что я получаю от входящего запроса.SSO с весной безопасности

ответ

0

Когда запрос приземляется на вашей странице он должен иметь маркер или ключ, в заголовке HTTP авторизацией, это должно быть использовано с фильтром

общественный класс 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

Смежные вопросы