Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Haga lo que hicimos: Autorización de requests

@Configuration
@EnableWebSecurity
public class SecurityConfigurations {

    @Autowired
    private SecurityFilter securityFilter;

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        return http.csrf(csrf -> csrf.disable())
        .sessionManagement(sm -> sm.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
        .authorizeHttpRequests(req -> {
            req.requestMatchers(HttpMethod.POST, "/login").permitAll();
            req.anyRequest().authenticated();
        })
        .addFilterBefore(securityFilter, UsernamePasswordAuthenticationFilter.class)
        .build();
    }

    @Bean
    public AuthenticationManager authenticationManager(AuthenticationConfiguration configuration) throws Exception {
        return configuration.getAuthenticationManager();
    }

    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }

}
1 respuesta

Hola Justin,

Veo que estás trabajando en la configuración de seguridad para tu aplicación Spring Boot. Tu configuración parece bastante sólida y estás aplicando buenas prácticas al deshabilitar CSRF para una API REST y establecer la política de sesión como sin estado (STATELESS), lo cual es ideal para APIs RESTful.

Sin embargo, si estás enfrentando algún problema específico, aquí hay algunas cosas que podrías revisar o considerar:

  1. Rutas y permisos: Asegúrate de que las rutas que deseas proteger estén correctamente configuradas. Por ejemplo, si tienes otras rutas además de /login que deberían ser accesibles sin autenticación, asegúrate de listarlas en requestMatchers.

  2. Filtros personalizados: Veo que estás utilizando un SecurityFilter personalizado. Asegúrate de que este filtro esté correctamente implementado y que no esté interfiriendo con el proceso de autenticación.

  3. Codificación de contraseñas: Estás utilizando BCryptPasswordEncoder, lo cual es una buena práctica para codificar las contraseñas. Asegúrate de que las contraseñas en tu base de datos estén codificadas con el mismo método para que la autenticación funcione correctamente.

  4. Pruebas: Realiza pruebas para asegurarte de que las rutas protegidas requieran autenticación y que las rutas públicas sean accesibles sin autenticación.

Si tienes un problema específico que no está resuelto con esta configuración, por favor proporciona más detalles para que pueda ayudarte mejor.

Espero haber ayudado y buenos estudios!