Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AuditingFields class의 CreatedBy, ModifiedBy cloumn 설정 #44

Merged
merged 2 commits into from
Mar 28, 2024

Conversation

ki-met-hoon
Copy link
Owner

  • AuditorAwareImpl class 구현
    • createdBy 컬럼은 String Type이기 때문에 Return 값을 String으로 지정
    • SecurityContextHolder의 authentication이 null 이거나 인증되지 않았거나 익명 사용자라면 empty를 return
    • getPrincipal은 Return Type이 Object이기 때문에 CustomUserDetails으로 형변환
    • 회원 가입 시 authentication.getPrincipal() == "anonymousUser"가 나오는 이유 -> 회원 가입 시 헤더에 토큰이 없는데 토큰이
      없으면 프로젝트 로직 내에서 SecurityContextHolder에 넣지 않고 그냥 진행시킴 그러면 security에서 기본적으로
      SecurityContextHolder에 값을 넣어주는데 이 값 중 인증되지 않은 값이면 anonymousUser로 정의
    • AnonymousAuthenticationToken은 이름에서도 알 수 있듯이 인증되지 않은 사용자를 나타내지만, Spring Security는 이를 인증
      된 사용자와 동일한 방식으로 다루기 때문에 일관성 있는 권한 처리를 위해 setAuthenticated(true)를 호출

- modifiedAt과 modifiedBy는 Entity가 처음 생성될 때 createdAt과 createdBy를 따라가기 때문에 PrePersist를 통해 초기화
- createdBy 컬럼은 String Type이기 때문에 Return 값을 String으로 지정
- SecurityContextHolder의 authentication이 null 이거나 인증되지 않았거나 익명 사용자라면 empty를 return
- getPrincipal은 Return Type이 Object이기 때문에 CustomUserDetails으로 형변환
- 회원 가입 시 authentication.getPrincipal() == "anonymousUser"가 나오는 이유 -> 회원 가입 시 헤더에 토큰이 없는데 토큰이 없으면 프로젝트 로직 내에서 SecurityContextHolder에 넣지 않고 그냥 진행시킴 그러면 security에서 기본적으로 SecurityContextHolder에 값을 넣어주는데 이 값 중 인증되지 않은 값이면 anonymousUser로 정의
- AnonymousAuthenticationToken은 이름에서도 알 수 있듯이 인증되지 않은 사용자를 나타내지만, Spring Security는 이를 인증된 사용자와 동일한 방식으로 다루기 때문에 일관성 있는 권한 처리를 위해 setAuthenticated(true)를 호출
@ki-met-hoon ki-met-hoon self-assigned this Mar 28, 2024
@ki-met-hoon ki-met-hoon merged commit 2407d6b into main Mar 28, 2024
1 check passed
@ki-met-hoon ki-met-hoon deleted the feature/#38-AuditorAwareImpl branch March 28, 2024 15:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant