-
[Spring] Spring Security 로그인된 유저 뽑아오기Spring 2022. 3. 14. 19:21
spring security을 프로젝트에 적용하다 로그인된 유저 정보를 어떻게 받아오는가를 찾아보게 되었다.
이렇게 SecurityContextHolder에서 UserDetails을 상속받은 객체의 정보를 불러올 수 있었다.
하지만 거의 매 함수에 이 과정을 반복해야만 하는게 너무 지저분해보였고, 좀더 깔끔하게 할 수 있는 방법을 찾았다.
이런식으로 어노테이션 @AuthenticationPrincipal을 이용해 반복되는 코드를 줄일 수 있었다.
하지만 대부분 유저의 id만 필요로 하는데 계속 memberdetail을 받아와 memberId를 뽑아오는게 조금 반복적으로 느껴져 어노테이션을 직접 만들어 수정을 했다.
expression과 어노테이션들을 활용해 자동으로 파라미터로 값을 받아오는 어노테이션을 만들었다.
때문에 코드는 더욱더 깔끔해졌지만 로그인 안되있을 시에 principal이 'anonymousUser'라는 string으로 넘어오는 것을 예외처리 하지 못했다. 이 또한 expression으로 해결했다.
'Spring' 카테고리의 다른 글
[Spring] Swagger 2.9.2 Jwt 설정 통일하는 법 (0) 2022.03.31 [Spring] Swagger 2.9.2 NumberFormatException 해결법 (0) 2022.03.31 [Spring] 로깅 알아보기 (0) 2022.03.05 [Querydsl] count한 컬럼을 바로 정렬기준으로 쓰기 (0) 2022.03.03 [Spring] controller pageable에 디폴트값 넣어주기 (0) 2022.03.03