인프런 커뮤니티 질문&답변

신민기는위대해요님의 프로필 이미지

작성한 질문수

스프링 프레임워크는 내 손에 [스프1탄]

82.추가 보충 설명하기(SimpleGrantedAuthority)

UsernamePasswordAuthenticationToken 생성에 대해서 질문이 있습니다.

해결된 질문

작성

·

50

0

새로운 Authentication 생성시에,

public Authentication createNewAuthentication(Authentication currentAuth, String username) {
UserDetails newPrincipal = this.loadUserByUsername(username);
UsernamePasswordAuthenticationToken newAuth = new UsernamePasswordAuthenticationToken(newPrincipal, currentAuth.getCredentials(), newPrincipal.getAuthorities());
newAuth.setDetails(currentAuth.getDetails());
return newAuth;
}

위 코드에 관하여 질문드립니다.
currentAuth.getCredentials()는 현재 SecurityContext에 있는 Authentication의 비밀번호를 가져와서 newAuth생성에 쓰임으로 알고있는데요.
이 때, 비밀번호를 수정한 경우에는..
newPrincipal.getCredentials() 라고 고친 메서드를 써야할까요?
아니면 Authentication을 바꿔서 유지해주기보다
로그아웃시켜서 다시 로그인해주는 방식이 옳을까요?

답변 1

1

박매일님의 프로필 이미지
박매일
지식공유자

이런 경우는 기존 세션을 끊고 로그아웃을 시킨 후 다시 로그인을 해주는 것이 더 좋을듯하겠습니다.