자료 보관함/Java | SpringBoot
[SpringBoot] SecurityFilterChain에서 .authorizeRequests() 설정
dev.jelee
2025. 7. 18. 13:22
작은 프로젝트를 개발하다가 인증 부분을 작성하는 중
SecurityFilterChain에서 .authorizeRequests() 설정에 대하여 메모하면 좋을 거 같아서 작성함.
- permitAll() : 인증 없이 모두 접근 허용
- authenticated() : 로그인(인증)한 사용자만 접근 허용
- hasRole("ROLE_USER") : 특정 권한(역할)이 있는 사용자만 접근 허용
1. anyRequest()에 .authenticated() 설정
SecurityFilterChain 작성할 때,
.authorizeRequests() 에서 .anyRequest()를 .authenticated()로 설정하면
Spring Security에 의해 로그인 창이 뜬다.
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.csrf(csrf -> csrf.disable())
.sessionManagement(session -> session
.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
.authorizeRequests(auth -> auth
.requestMatchers("/").permitAll()
.anyRequest().authenticated() // .authenticated() 로 설정
);
return http.build();
}
2. anyRequest()에 .permitAll() 설정
이번에는 .permitAll()로 설정하니 로그인창은 뜨지 않는다.
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.csrf(csrf -> csrf.disable())
.sessionManagement(session -> session
.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
.authorizeRequests(auth -> auth
.requestMatchers("/").permitAll()
.anyRequest().permitAll() //permitAll()로 설정
)
;
return http.build();
}
메모
- 회원가입 기능을 구현해야했고, 아직 권한을 설정할 필요는 없을 거 같아서 permitAll()로 설정하여 개발 중.