프로젝트에 관리자 페이지를 생성하면서, 역할 admin을 을 만들었다.
admin 관리자 페이지의 url을 Security Config 클래스에서 역할을 부여한다.
http
...
.antMatchers("/admin/**").hasRole(Role.ADMIN.name())
.antMatchers("/api/v1/**").hasRole(Role.USER.name())
...
이러면 admin이 붙은 페이지들은 role이 admin인 사용자만 접근할 수 있다.
그런데 문제가 생겼다.
글을 삭제하거나 탈퇴하는 등 기능이 들어가있는 url을 일반사용자에게 부여해놨기 때문에 admin 계정은 해당 기능들을 쓰지 못했다;; 바보아니야...?
그래서 열심히 검색을 해보았는데 계층 권한이라는 Role Hierarchy 라는 것도 찾아보고 그랬는데 아무리 봐도 이렇게 까지 하지 않고 권한부여 하나를 하는데 사용하는 메소드가 있을 것 같았다..
http
...
.antMatchers("/admin/**").hasRole(Role.ADMIN.name())
.antMatchers("/api/v1/**").hasAnyRole(Role.USER.name(),Role.ADMIN.name())
...
정답은 hasAnyRole 이었다 ^_^
이렇게 두개의 역할을 넣어주면 "/api/v1/**" 아래의 url은 두개의 역할에 권한이 주어진다.!!
'TIL' 카테고리의 다른 글
[TIL] Stream API method 탐구2, 객체 리스트와 map, flatMap (0) | 2023.10.27 |
---|---|
[TIL] Stream API method 탐구, map과 filter (0) | 2023.10.24 |
[TIL] 반성의 TIL... Junit MockMvc.perform 에서 session 사용하기.. (0) | 2023.10.12 |
[TIL] login with oauth 2.0 페이지 수정해보기.. /login (0) | 2023.09.24 |
[TIL] ./gradlew 무한 로딩..? 에러도 뜨지 않고 먹통될 때 (0) | 2023.09.19 |