Backend

Spring

Seguridad

Autenticación

Spring permite configurar la autenticación directamente en nuestro servicio mediante un formulario de login o con autenticación básica. Para ello se utiliza una clase de configuración de Spring Security que la aplicación servidor leerá al arrancar:

@Configuration @EnableWebSecurity
public class ConfiguracionSeguridad {
  @Bean public SecurityFilterChain configuracion(HttpSecurity http) throws Exception {
    http.authorizeHttpRequests((authorize) -> authorize.anyRequest().authenticated())
        .formLogin(Customizer.withDefaults())
        .httpBasic(Customizer.withDefaults())
        .csrf(csrf -> csrf.ignoringRequestMatchers("/api/**"));
    return http.build();
  }

  @Bean public UserDetailsService usuarios() {
    UserDetails user = User.withDefaultPasswordEncoder()
        .username("usuario")
        .password("clave")
        .roles("USER")
        .build();
    return new InMemoryUserDetailsManager(user);
  }
}

❓ Ejercicio 1: Añade la clase anterior al proyecto MVC. Intenta acceder a http://localhost:8080/contacto. Utilizando el inspector de red del navegador, identifica como se produce la autenticación y se mantiene en sucesivas peticiones.

❓ Ejercicio 2: Intenta llamar al API de contadores http://localhost:8080/api/contadores* utilizando la autenticación básica de HTTP.