În Spring Boot 3 și Spring Security 6, vechea abordare bazată pe moștenirea clasei WebSecurityConfigurerAdapter a fost complet eliminată. Noul standard impune definirea securității printr-un bean de tip SecurityFilterChain.
Configurarea utilizează o sintaxă fluentă bazată pe lambda-uri Java, permițând declararea clară a rutelor publice, a celor protejate prin roluri, a mecanismelor de autentificare și a politicilor de sesiune.
Exemplu: Configurare SecurityFilterChain completă pentru API REST stateless
package ro.dexblog.demo.config;
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 WebSecurityConfig {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.csrf(csrf -> csrf.disable()) // Dezactivat pentru API-uri REST stateless
.sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
.authorizeHttpRequests(auth -> auth
.requestMatchers("/api/v1/auth/**", "/public/**").permitAll()
.requestMatchers("/api/v1/admin/**").hasRole("ADMIN")
.anyRequest().authenticated()
);
return http.build();
}
}
Întrebări & Exemple de Cod:
SecurityFilterChain în Spring Security 6Ai o nelămurire despre utilizarea comenzii
SecurityFilterChain în Spring Security 6sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.