Forbidden 오류

강낭콩·2023년 7월 14일

스프링 시큐리티 로그인 처리를 하고 권한 허용을 USER로 했는데도 오류가 발생했다.
시큐리티 로그인을 하고 권한을 테스트 하고자 USER만 read/2에 들어올 수 있게 해놨는데 로그인을 하고 403 forbidden 에러가 발생했다.
1. UserDetails 구현해서 Role을 찍어도 USER 잘 나오고
2. csrf도 disable 했고
3. loadUserByUsername에서도 값 반환할때 값 찍어보니 Role이 USER로 잘 나옵니다
로그인을 안하고 요청하면 404에러가 발생하고 로그인을 하고 요청하면 404에러가 떠서 로그인은 잘 된것 같습니다

해결법

해결법은 2가지가 존재한다.

1. .hasAuthority

.hasRole을 사용하지말고 .hasAuthority()를 사용하면 잘 된다.

                .antMatchers("/board/read/2").hasAuthority("USER")

2. Role이름 수정하기

원래는 USER, ADMIN으로 지었는데 앞에 ROLE_을 붙이면 된다.

USER -> ROLE_USER 이런식으로 바꾸면 해결된다.

출처-
https://whitepro.tistory.com/494

0개의 댓글