2
respuestas

[Sugerencia] Metodos Obsoletos Actividad 09 Configuración de seguridad #2

El siguiente codigo proporcionado por el instructor tiene problemas de obsolescencia para los metodos ** csrf(), ** sessionManagement(), ** and()

package med.voll.api.infra.security;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.web.SecurityFilterChain;

@Configuration
@EnableWebSecurity

public class SecurityConfigurations {

  @Bean
  public SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) throws Exception {

return httpSecurity
     .csrf()    //**The method csrf() from the type HttpSecurity has been deprecated since version 6.1 and marked for removalJava(67110275)
     .disable()
     .sessionManagement()      //**The method sessionManagement() from the type HttpSecurity has been deprecated ...
     .sessionCreationPolicy(SessionCreationPolicy.STATELESS)
     .and()    //**The method and() from the type SecurityConfigurerAdapter has been deprecated..
     .build();
  }
}

Encontre esta posible solución:

@Configuration
@EnableWebSecurity
public class SecurityConfigurations {

  @Bean
  public SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) throws Exception {
    return httpSecurity
            .csrf(csrf -> csrf.disable())
            .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
            .build();
  }
}

En la versión corregida, se utilizan las expresiones lambda en los métodos csrf y sessionManagement para configurar la protección CSRF y la gestión de sesiones, respectivamente. Estas expresiones se encargan de deshabilitar el CSRF y establecer la política de creación de sesiones como stateless.

Espero que ayude

saludos

2 respuestas

muchas gracias, me ponía nervioso que los métodos mencionados estaban deprecated!!!

Genial, muchas gracias. El mío quedó así gracias a esos cambios que pusiste:

public SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) throws Exception {
        return httpSecurity
                .csrf(AbstractHttpConfigurer::disable)
                .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
                .build();
    }