Spring/Spring Securitiy
2. @EnableGlobalMethodSecurity 대체
개발자잡
2025. 1. 20. 22:26
@EnableGlobalMethodSecurity는 Spring Security 6.0(2022년 11월 릴리즈)부터 더 이상 사용되지 않으며, 대신 새로운 방식으로 변경되었습니다. 이는 스프링 보안 설정을 더욱 직관적이고 간소화하기 위한 변화입니다.
대체: @EnableMethodSecurity
import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity;
@Configuration
@EnableMethodSecurity(prePostEnabled = true)
public class SecurityConfig {
// 보안 설정 관련 코드
}
@EnableMethodSecurity 주요 변경점
- 기능 활성화:
- @EnableGlobalMethodSecurity(prePostEnabled = true)에서 수행하던 작업은 동일합니다.
- prePostEnabled, securedEnabled, jsr250Enabled 속성도 그대로 지원됩니다.
- 유지보수성 향상:
- @EnableMethodSecurity는 기존 @EnableGlobalMethodSecurity의 역할을 개선하고, 새로운 보안 기능과의 호환성을 높이기 위해 설계되었습니다.
사용 예시
메서드 수준 권한 부여 예제
@PreAuthorize, @PostAuthorize를 사용하는 경우:
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Service;
@Service
public class SampleService {
@PreAuthorize("hasRole('ADMIN')")
public String getAdminData() {
return "Admin Data";
}
@PreAuthorize("hasRole('USER')")
public String getUserData() {
return "User Data";
}
}
자바 17 이상 필요
https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter