URL 레벨 보안 적용
@Configuration
@EnableWebSecurity
public class SecurityConfig{
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http.csrf(csrf -> csrf.disable())
.authorizeHttpRequests(auth -> auth
.requestMatchers("/user/**").authenticated()
.requestMatchers("/manager/**").hasAnyRole("ADMIN", "MANAGER")
.requestMatchers("/admin/**").hasRole("ADMIN")
.anyRequest().permitAll()
)
메서드 레벨 보안 적용
1. @Secure
단순 권한 체크
@Configuration
@EnableWebSecurity
@EnableMethodSecurity(securedEnabled = true) // 추가! - secured 어노테이션 활성화
public class SecurityConfig{
...
}
@Secured("ROLE_ADMIN")
@GetMapping("/info")
public String info() {
return "개인정보";
}
@Secured({"ROLE_ADMIN", "ROLE_MANAGER"})
@GetMapping("/update")
public String update() {
return "정보 수정";
}
2. @PreAuthorize
복잡한 조건 체크
메서드가 실행되기 직전에 검사
@Configuration
@EnableWebSecurity
@EnableMethodSecurity(prePostEnabled = true) // 추가! - preAuthorize 어노테이션 활성화
public class SecurityConfig{
...
}
@PreAuthorize("hasRole('ADMIN') or hasRole('MANAGER')")
@GetMapping("/data")
public String data() {
return "아주 중요한 정보;";
}
'Back-End > ↳ Spring Security' 카테고리의 다른 글
[Spring Security] JWT (0) | 2025.07.27 |
---|---|
[Spring Security] RSA (1) | 2025.07.27 |
[Spring Security] Session (1) | 2025.07.27 |
[Spring Security] 회원가입 / 로그인 (2) | 2025.07.27 |
[Spring Security] 기본 설정 - URL별 접근 권한 설정 (0) | 2025.07.26 |