Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
3
respuestas

Cambios en la versión 3.1 de Spring Boot

Hola, he intentado implementar el cambio sugerido para el método securityFilterChain, y trate de aplicar la sugerencia de la compañera Mariana, de comentar la linea donde aparece el error (securityFilter), pero no he logrado avanzar con los ejercicios. Mi codigo es el siguiente:

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Y mi resultado cuando comento la linea 24, es la siguiente:

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidadTrate de avanzar viendo los siguientes cursos, para ver si se mencionaba en donde se crea el "securityFilter", pero no lo he logrado encontrar. Alguien sabe como poder avanzar con este tema???

3 respuestas

Hola Oscar, en la actividad 10 ponen un ejemplo de como resolver correctamente el código, lo intenté y a mi me funcionó

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

Saludos.

Gracias Luis, efectivamente funciona esta solución y pude avanzar,hasta llegar al tema "Liberando el Acceso login #1". En el punto 08 "Para saber más: AuthorizeRequests deprecated" se menciona que hay que cambiar por el nuevo metodo:

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

NOTA: El cual es diferente al que se muestra en el video del profe.

y nuevamente comienzan los problemas, porque no se logra generar correctamente la funcionalidad esperada. He intentado ajustar el metodo, pero no cacha el token:

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Ya llevo varias horas intentando que funcione, pero no lo he logrado :-(

Espero encontrar pronto la solución!!! Saludos!!!

Hola Oscar, segun veo en tu captura el "return" debería estar antes del primer "http" en la linea 52, date cuenta que en la linea 57 tienes un punto y coma como si se hubiera terminado la declaración.

Te dejo un ejemplo de como yo lo hice:

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

Puede que tengas que cambiar algo para adaptarte a la parte del curso donde estas, pero puedes borrar luego del and() y debería funcionar.