Saltar al contenido

¿Cómo configurar la redirección después de iniciar sesión correctamente?

Solución:

La definición de la redirección después de un inicio de sesión exitoso debe aplicarse en Spring Security, no en Spring MVC.

los th:action define el punto final de Spring Security que procesará la solicitud de autenticación. No define la URL de redireccionamiento. Fuera de la caja, Spring Boot Security le proporcionará la /login punto final. De forma predeterminada, Spring Security redirigirá después de iniciar sesión al recurso seguro al que intentó acceder. Si desea redirigir siempre a una URL específica, puede forzarlo a través del objeto de configuración HttpSecurity.

Suponiendo que está usando una versión reciente de Spring Boot, debería poder usar JavaConfig.

Aquí hay un ejemplo simple:

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Autowired
    private UserService userService;

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        // the boolean flags force the redirection even though 
        // the user requested a specific secured resource.
        http.formLogin().defaultSuccessUrl("/success.html", true);
    }

    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(userService);
    }
}

Tenga en cuenta que debe definir un punto final apropiado para entregar contenido para el /success.html URL. Un recurso estático disponible por defecto en src/main/resources/public/ haría el truco para fines de prueba. Personalmente, preferiría definir una URL segura servida por un controlador Spring MVC que sirve contenido con Thymeleaf. No desea que ningún usuario anónimo pueda acceder a la página de éxito. Thymeleaf como algunas características útiles para interactuar con Spring Security mientras se procesa el contenido HTML.

Saludos, Daniel

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *