스프링 시큐리티를 적용하는 과정을 다시 경험했다.
"아 이게 여기도 올 수 있구나~ 하는 느낌"
ERD와 API설계를 참고하여 Entity 설계를 진행하였다.
향후 프로젝트 진행에 있어 더 큰 리소스를 아낄 수 있을 것이라고 생각한다.
생각하며 코드를 작성하기, 근거있는 코드 작성하기라는 습관을 들여간다는 점이 오늘의 배움이 아닐까 생각해본다.
이제 프로젝트가 시작됐다.
현재 상황: S.A 부터 프로젝트 초기 구현까지(시큐리티 붙이고, 간신히 돌아가는 정도)
프로젝트 목표
1. 생각하며 코드를 작성하고 있나요? - 처음부터 잘 짜면 좋고, 그게 안될 상황이라면 돌아간 다음에 다시 훑어보는 습관을 들이자.
- 코드에 근거를 두자 / 커밋 메세지에 근거들을 담는다 -> PR하기 전 팀원들에게 코드에 대한 설명을 하고 동의를 얻는 습관을 들이자.
Global 익셉션 핸들러 -> 같이 잡히지 않나(맞음) //
AuthException
게시물을 작성할 수 있는 권한이 없습니다.
AuthException을 상속받은 특정 exception을 만들어라
-> 예외 명도 더 직관적이고 세분화할 수 있다. (메소드단위보단 엔티티 단위로 ex) Board, Comment) // 세분화는 error code enum으로 만들어서 하면 된다.
@PreAuthorize에 method를 넣어서 RoleCheck false시 Exception을 throw 하도록 하여 handling을 할 수 있다.
https://kim-jong-hyun.tistory.com/36
위 링크를 참고하여 AccessDeniedHandler 와 AuthenticationEntryPoint에 대한 핸들링도 진행하자.