Привет. Я пытаюсь создать API-интерфейс в Spring Boot, который позволяет только аутентифицированным пользователям получать к нему доступ.
Моему API будет передан XML от третьей стороны, содержащий учетные данные пользователя. Я использую AbstractAuthenticationProcessingFilter для обработки этого и аутентификации пользователя.
После входа в систему я хочу перенаправить мое внешнее приложение, которое находится в другом домене. Я также хочу, чтобы каждый последующий запрос от приложения переднего плана проходил проверку подлинности как пользователь USER, который вызывает мой API.
Я пытался использовать AbstractAuthenticationProcessingFilter и переопределять метод successAuthentication. Меня перенаправляют в приложение внешнего интерфейса, но я не вижу файлов cookie JSESSION в интерфейсе
public class myFilter extends AbstractAuthenticationProcessingFilter {
@Override
public Auththentication attemptAuthentication (HttpServletRequest request, HttpServletResponse response) throws AuthenticationException {
// some logic here to authenticate
return new UsernamePasswordAuthenticationToken(user, null, user.getAuthorities())
}
// Want to redirect the user to the frontend with session
@Override
protected void successfulAuthentication(HttpServletRequest request, HttpServletResponse response, FilterChain chain, Authentication authentication){
request.getSession();
SecurityContextHolder.getContext().setAuthentication(authentication)
response.sendRedirect("https://my-front-end-app.com")
}
}