1. UserDetails를 상속받아 User를 구현할 때 Lombok으로 @Data만 적용하였더니 생성자 실행에 에러가 발생하지는 않지만 authorities에 의해서 생성자 실행이 제대로 되지 않음
=> @Data가 아닌 @Getter, @Setter, @ToString 적용하고 생성자 메소드는 authorities를 제외하여 따로 입력해줘야 함
2. SecurityConfig에서 hasRole이나 hasAnyRole을 통해 접근 권한(Role)을 지정해줄 때는 ADMIN, USER와 같은 형식으로 입력하지만 DB에 저장할 때는 ROLE_ADMIN, ROLE_USER와 같이 ROLE_을 붙여서 저장해야 함
=> 그렇지 않으면 authorities에 SimpleGrantedAuthority 객체를 추가한 뒤 User 객체에 Set을 해도 오류는 발생하지 않지만 적용이 제대로 되지 않음
=> GrantedAuthority는 [ROLE_*] 형태로 데이터를 사용하기 때문
3. Spring Security에서 JWT와 같은 특정 토큰을 사용하지 않고 기본 설정으로 로그인을 설정하는 경우에는 로그인 시에 csrf 토큰을 같이 보내줘야 함 => Spring Security는 default로 crsf 토큰을 이용하기 때문
※ 로그인 페이지로 프론트엔드에서 만든 페이지와 REST API로 통신하면 controller 파일에 @RestController을 적용하지만 jsp나 html으로 만든 페이지로 통신을 할때는 @Controller를 적용해야함
=> jsp나 html로 페이지를 만들었는데 @RestController를 적용하면 페이지가 출력되지 않고 단순 텍스트 데이터가 출력됨
'Spring' 카테고리의 다른 글
의존성 주입 방식 (0) | 2023.05.25 |
---|---|
JWT (0) | 2023.05.25 |
Spring Security 기본 세팅 (0) | 2023.05.09 |
Thymeleaf 기본 문법 (0) | 2023.05.08 |
Spring Security 정의 및 동작 구조 (0) | 2023.05.04 |
댓글