Я использую Spring Security с SpringMVC для создания веб-приложения (я буду называть это как WebApp для ясности), который говорит с существующим приложением (я буду называть это как BackendApp).
Я хочу делегировать полномочия проверки подлинности на BackendApp (так что мне не нужно синхронизировать два приложения).
Чтобы реализовать это, я хотел бы, чтобы WebApp (работающий под управлением Spring) связывался с BackendApp через REST с именем пользователя и паролем, предоставленным пользователем в форме, и аутентифицировался на основании того, отвечает ли ответ BackendApp 200 OK или 401 Несанкционированный.
Я понимаю, что мне нужно будет написать собственный Authentication Manager для этого, но я очень новичок в Spring и не могу найти никакой информации о том, как его реализовать.
Я считаю, что мне нужно будет сделать что-то вроде этого:
public class CustomAuthenticationManager implements AuthenticationManager{
@Override
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
String username = authentication.getName();
String pw = authentication.getCredentials().toString();
// Code to make rest call here and check for OK or Unauthorised.
// What do I return?
}
}
Я установил authentication.setAuthenticated(true), если он был успешным, и false, если в противном случае и это?
Как только это будет написано, как мне настроить защиту Spring для использования этого диспетчера идентификации с помощью файла конфигурации java?
Заранее благодарим за любую помощь.