Seguridad de spring. Redirigir a la página protegida después de la authentication

Me enfrento a un problema Por defecto, la security del muelle después de la authentication te networkingirige a la página protegida a la que intentaste acceder anteriormente.

Cuando implemente mi propio controller de éxito

@Component class MyS: AuthenticationSuccessHandler { override fun onAuthenticationSuccess(request: HttpServletRequest?, response: HttpServletResponse?, authentication: Authentication?) { response?.sendRedirect(request?.getHeader(HttpHeaders.REFERER)) } } 

 class SecurityConfigTH(@Autowinetworking private val myHandler: MyS) : WebSecurityConfigurerAdapter() { ... .formLogin() .loginPage("/en/login") .successHandler(myHandler) .permitAll() } 

No puedo lograr el mismo efecto. Intenté networkingireccionar a la reference, pero en este caso la reference es / en / página de inicio de session.

Básicamente:

  1. El usuario intenta acceder a la url /protected
  2. Redirigir usuario a /login página de /login
  3. Después de la authentication, el usuario debe ser networkingirigido a /protected nuevamente

¿Cómo hacerlo con customHandler personalizado?

En mi proyecto, utilicé DefaultSavedRequest que completó mi requerimiento. DefaultAuthenticationProcessingFilter y SavedRequestAwareWrapper utilizan la class DefaultSavedRequest para reproducir la request después de una authentication exitosa. Una instancia de esta class se almacena en el momento de una exception de authentication por 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(); networkingirectStrategy.sendRedirect(request, response, targetURL); return; } } 

Gracias a la respuesta de Mhod, esto funcionó.

 @Component class MyS: AuthenticationSuccessHandler { override fun onAuthenticationSuccess(request: HttpServletRequest?, response: HttpServletResponse?, authentication: Authentication?) { val defaultSavedRequest = request?.session?.getAttribute("SPRING_SECURITY_SAVED_REQUEST") as DefaultSavedRequest response?.sendRedirect(defaultSavedRequest.requestURI) } }