4
respuestas

Actualizando la función -> SecurityFilterChain(), para que no te genere error

@Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) throws Exception {
        return httpSecurity.csrf(csrf -> csrf.disable())
                .sessionManagement(sess -> sess.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
                .authorizeHttpRequests(auth -> auth.requestMatchers(HttpMethod.POST, "/login").permitAll()
                        .anyRequest().authenticated())
                .build();
    }
4 respuestas

Hola Cristhian,

El error podría ser debido a la secuencia en la que estás aplicando las reglas. En Spring Security, el orden de las reglas de seguridad es muy importante. Las reglas se aplican en el orden en que se definen, y la primera regla que coincide con una solicitud determinada se aplica.

Por lo tanto, si tienes una regla que dice que todas las solicitudes deben ser autenticadas antes de la regla que permite todas las solicitudes a "/login", entonces la regla de autenticación se aplicará primero y la solicitud a "/login" será rechazada porque no está autenticada.

@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) throws Exception {
    return httpSecurity
            .csrf(csrf -> csrf.disable())
            .sessionManagement(sess -> sess.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
            .authorizeHttpRequests(auth -> auth
                    .requestMatchers(HttpMethod.POST, "/login").permitAll()
                    .anyRequest().authenticated())
            .build();
}

En este ejemplo, la regla que permite todas las solicitudes a "/login" se define antes que la regla que requiere autenticación para todas las solicitudes. Esto debería permitir que las solicitudes a "/login" pasen sin necesidad de autenticación.

Espero haber ayudado y ¡buenos estudios! Mucho éxito en todo lo que te propongas y si tienes alguna duda aquí estaremos para apoyarte.

¡Vamos juntos!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios

Buen dia, Gracias Cristhian, Saludos, Rene Avila A

Gracias Cristhian, funciono perfecto, Saludos.

Gracias, funciono para mi