안녕하세요, auditing 강의를 듣고 적용해보았습니다.
게시글을 처음에 만들때 원하는 값들이 잘 들어가지만
게시글을 수정하여 다시 저장할 경우audit 부분에서 createdBy, modifiedBy 를 못가져오면서 transaction 에러를 냅니다..!
혹시 실무에 적용하기 위해 추가로 적용해야 할 부분이 있을까요?
아마 AuditorAwareImpl에서 @Autowired MemberRepository memberRepository; 부분이 이상한 것 같은데...이유는 모르겠습니다 ㅠ_ㅠ
public class AuditorAwareImpl implements AuditorAware<Long> {
@Autowired
MemberRepository memberRepository;
@Override
public Optional<Long> getCurrentAuditor() {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (null == authentication || !authentication.isAuthenticated()) {
return null;
}
DefaultOAuth2User principal = (DefaultOAuth2User) authentication.getPrincipal();
String email = (String) principal.getAttributes().get("email");
if(email == null ){
return null;
}
Member member = memberRepository.findByEmail(email).orElse(null);
if(member == null){
return null;
}
return Optional.of(member.getId());
}
}
안녕하세요!
우선 테스트를 설명하자면 , oAuth2.0 google 로그인을 한 상태이고요,
게시물을 작성하였을 때 audit에 따른 createdBy, modifiedBy 이 제대로 작성 된 것을 확인하였습니다.
수정을 할 경우에 문제가 발생합니다.
수정을 할 경우에도 내용 변경없이 수정을 할 경우 아무 문제 없지만
내용을 변경 한 후 저장을 누르면 다음과 같은 에러가 발생합니다
관련 된 코드를 https://github.com/JPWon-1/git-audit-test
에 남겨봅니다
양해 바라는 점은, oAuth를 통한 로그인을 하다보니 application-oauth.yml 파일에
id와 password 부분은 따로 첨부를 하진 못하였습니다..
이와 관련되어 어떤 방식으로 소스코드를 공유하는게 좋은지 알려주신다면 다음엔 그 방법을 참조하여 질문을 남기도록 하겠습니다