728x90
스프링 시큐리티 3 : Security Config 인가 작업
개발자 유미 | 커뮤니티
www.devyummi.com
인가
특정 경로 요청시 Controller보다 앞서 Filter에서 Spring Security가 다음과 같은 검증을 진행
- 허용된 접근 경로인지
- (로그인을 통해)인가 된 사용자인지
- 접근에 필요한 권한을 가지는지 검증
SecurityConfing.java 생성
/config/SecurityConfing.java
package com.cos.testsecurity.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.web.SecurityFilterChain;
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.authorizeHttpRequests((auth)->auth
.requestMatchers("/", "/login").permitAll()
.requestMatchers("/admin").hasRole("ADMIN")
.requestMatchers("/my/**").hasAnyRole("ADMIN", "USER")
.anyRequest().authenticated()
);
return http.build();
}
}
- requestMatchers : 특정 경로나 요청 패턴에 대한 보안 설정을 적용할 때 사용
- permitAll : 해당 경로나 요청에 대해 인증/인가 없이 누구나 접근 가능
- hasRole : 특정 역할(Role)이 부여된 사용자만 접근 가능하도록 설정
- hasAnyRole : 여러 개의 역할(Role) 중 하나라도 가지고 있으면 접근 가능
- anyRequest : 앞서 정의한 특정 요청을 제외한 모든 요청을 의미
- authenticated : 인증된 사용자만 접근 가능하도록 요구
728x90
'Spring > Spring Security' 카테고리의 다른 글
개발자 유미 - 스프링 시큐리티 2. 프로젝트 생성 (0) | 2025.02.09 |
---|---|
개발자 유미 - 스프링 시큐리티 1 : 실습 목표 및 간단한 동작 원리 (0) | 2025.02.05 |