728x90
표현식 권한 규칙 설명
- 스프링 시큐리티는 표현식을 사용해서 권한 규칙을 설정하도록 WebExpressionAuthorizationManager를 제공
- 표현식은 시큐리티가 제공하는 권한 규칙을 사용하거나 사용자가 표현식을 커스텀하게 구현해서 설정 가능
사용 방법
- requestMatchers().access(new WebExpressionAuthorizationManager("expression"))
적용하기
커스텀 권한 표현식 구현 (권한)
- DefaultHttpSecurityExpressionHandler의 역할은 사용자가 커스텀하게 정의한 WebExpressionAuthorizationManager에 지정한 표현식 구문을 처리하는 클래스
- @customWebSecurity.check(authentication, request)
- @customWebSecurity → 어노테이션(@)을 붙이고 빈 이름 작성
- .check → 빈의 메서드
- (authentication, request) → 매개 변수로 전달할 이름
- .requestMatchers("/resource/**").access(expressManager)
- /resource의 모든 경로에 접근할 때는 사용자 정의를 한 표현식으로 검사
커스텀 RequestMatcher 구현 (엔드포인트)
- RequestMatcher의 matcher 및 matches 메서드를 사용하여 클라이언트의 요청 객체로부터 값을 검증하도록 커스텀한 RequestMatcher를 구현하고 requestMatchers() 메서드에 설정
정리
- 권한 설정 2가지
- .access() 안에 new WebExpressionAuthorizationManager()를 이용하여 표현식 구문 작성
- 커스텀 권한 표현식 구현
- 커스텀 RequestMatcher 구현
728x90
'Language > Spring Security' 카테고리의 다른 글
메서드 기반 권한 부여 - @PreAuthorize, @PostAuthorize (0) | 2024.07.31 |
---|---|
요청 기반 권한 부여 - HttpSecurity.securityMatcher() (0) | 2024.07.31 |
요청 기반 권한 부여 - HttpSecurity.authorizeHttpRequests() (0) | 2024.07.31 |
SameSite (0) | 2024.07.29 |
CSRF 통합 (0) | 2024.07.29 |