Spring_Security_6_Notes
Spring_Security_6_Notes
3. Configuration Style
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception
{
http
.authorizeHttpRequests(auth -> auth
.requestMatchers("/public/**").permitAll()
.anyRequest().authenticated()
)
.formLogin(Customizer.withDefaults());
return http.build();
}
4. Authentication Methods
Form Login – http.formLogin();
HTTP Basic – http.httpBasic();
JWT (Stateless) – Used with a custom OncePerRequestFilter
@EnableMethodSecurity
@PreAuthorize("hasRole('ADMIN')")
@Secured("ROLE_USER")
6. Password Encoding
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
7. UserDetailsService & AuthenticationManager
@Service
public class MyUserDetailsService implements UserDetailsService {
@Override
public UserDetails loadUserByUsername(String username) {
// Load user from DB
}
}
@Bean
public AuthenticationManager authenticationManager(AuthenticationConfiguration
config) throws Exception {
return config.getAuthenticationManager();
}