[TIL] 2023.01.02 [Spring Security 팀프로젝트]

조성현·2023년 1월 2일
0

Today I Learn

  • 스프링 시큐리티를 적용하는 과정을 다시 경험했다.

    • 내 코드가 아닌, 다른 사람의 코드로서 접하는 시큐리티를 통해 복습을 야무지게 할 수 있었다. "아 이게 여기도 올 수 있구나~ 하는 느낌"
  • ERD와 API설계를 참고하여 Entity 설계를 진행하였다.

    • 무작정 구현부터 하고 생각하는 것이 아니라, 연관관계에 대해 충분히 고민&논의를 거치고 구현했기에 초기 시간은 더 들었지만 향후 프로젝트 진행에 있어 더 큰 리소스를 아낄 수 있을 것이라고 생각한다.
  • 생각하며 코드를 작성하기, 근거있는 코드 작성하기라는 습관을 들여간다는 점이 오늘의 배움이 아닐까 생각해본다.


이제 프로젝트가 시작됐다.
현재 상황: S.A 부터 프로젝트 초기 구현까지(시큐리티 붙이고, 간신히 돌아가는 정도)

프로젝트 목표
1. 생각하며 코드를 작성하고 있나요? - 처음부터 잘 짜면 좋고, 그게 안될 상황이라면 돌아간 다음에 다시 훑어보는 습관을 들이자.

  1. 코드에 근거를 두자 / 커밋 메세지에 근거들을 담는다 -> PR하기 전 팀원들에게 코드에 대한 설명을 하고 동의를 얻는 습관을 들이자.


메모

Global 익셉션 핸들러 -> 같이 잡히지 않나(맞음) //
AuthException
게시물을 작성할 수 있는 권한이 없습니다.
AuthException을 상속받은 특정 exception을 만들어라
-> 예외 명도 더 직관적이고 세분화할 수 있다. (메소드단위보단 엔티티 단위로 ex) Board, Comment) // 세분화는 error code enum으로 만들어서 하면 된다.

  • errcode에서 status와 message 빼서 리턴

@PreAuthorize에 method를 넣어서 RoleCheck false시 Exception을 throw 하도록 하여 handling을 할 수 있다.

https://kim-jong-hyun.tistory.com/36
위 링크를 참고하여 AccessDeniedHandler 와 AuthenticationEntryPoint에 대한 핸들링도 진행하자.

profile
맛있는 음식과 여행을 좋아하는 당당한 뚱땡이

0개의 댓글