본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
안녕하세요 :)
오늘은 챌린지 27일차로, 오늘 정말 매우 피곤한데.. 빨리 끝내고 자려고요..
오늘 배울 내용은,
Part B. 스프링 시큐리티 심화
Ch 1. 액세스 제한과 권한
"02. 권한과 역할에 따른 접근 제한 - 2" 과
"03. requestMatchers" 2개의 클립입니다.

■ 02. 권한과 역할에 따른 접근 제한 - 2
이번 시간에는 특정 권한이 있는 사용자만 허용하도록 설정에 대해 알아보면서, WRITE 권한이 있는 사용자만 허용하는 연습을 해봤다.
hasAnyAuthority 활용하는 부분에 있어서, READ 또는 WRITE 권한이 있으면 허용하게 했고, hasAnyAuthority 는 list 형식의 권한을 받을 수 있다. 또, access 활용하여 Custom 하게 설정하여 사용할 수 있다.
역할과 권한의 차이점을 이해하는 것이 중요하다는 것을 상세하게 알아보기도 했다.
denyAll 을 활용하여 접근 제한하는 방법에 대해서도 알아보았는데, denyAll 을 활용하면 모든 요청을 기본적으로 거부하게 된다. 그래서 특정 요청만 허용하고 싶을 때 활용할 수 있고, .com 으로 끝나는 이메일에 대해서만 요청을 받고 나머지 요청에 대해서는 거부하고 싶을 때 사용한다.
■ 03. requestMatchers
특정 경로에 대한 접근 제한하는 방법에 대해서는 지금까지는 모든 엔드포인트에 설정을 적용했다. anyRequest()
특정한 요청 그룹에 권한 부여 제약 조건을 적용하는 방법에 대해 알아보았는데, 이를 위해 Matcher (선택기) 를 활용했다.
Spring Security 6 버전 아래에서는 mvcMatcher, antMatcher, regexMatcher 를 활용할 수 있었다. 최신 버전의 Spring Security 에서는 기본적으로 requestMatcher 를 활용한다.
새로운 엔드포인트가 생성되면 어떻게 동작할까? 신규 엔드포인트에 대해서는 요청이 거부된다. hola 엔드포인트를 생성한다. 허용하고 싶으면 permitAll 을 활용한다. api/v1/hello, api/v1/hi 를 제외한 나머지 엔드포인트에 대해서는 접근이 허용된다.
HTTP 방식에 따라 다른 권한 적용 방법은 다음과 같다.
- 4개의 엔드 포인트 생성 : ① GET/api/v1/hello ② POST/api/v1/hello ③ GET/api/v1/hello/hi ④ GET/api/v1/hello/hi/hola