在我的项目中,我用DefaultSavedRequest
它满足了我的要求。DefaultSavedRequest
成功认证后,AbstractAuthenticationProcessingFilter和SavedRequestAwareWrapper使用该类重现请求。ExceptionTranslationFilter在身份验证异常时存储此类的实例。
https://docs.spring.io/spring- security/site/docs/4.1.2.RELEASE/apidocs/org/springframework/security/web/savedrequest/DefaultSavedRequest.html
@Override
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication)
throws IOException, ServletException {
DefaultSavedRequest defaultSavedRequest = (DefaultSavedRequest) session.getAttribute("SPRING_Security_SAVED_REQUEST");
if(defaultSavedRequest != null){
String targetURL = defaultSavedRequest.getRedirectUrl();
redirectStrategy.sendRedirect(request, response, targetURL);
return;
}
}