• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

authentication관련 질문...

24.03.29 01:25 작성 24.03.29 01:35 수정 조회수 90

0

public void login(Account account) {
    System.out.println(account);
    UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(account.getNickname(),
            account.getPassword(), Collections.singleton(new SimpleGrantedAuthority("ROLE_USER")));
    SecurityContextHolder.getContext().setAuthentication(token);

}

우선 AccountService에 있는 login입니다.

제가 테스트를 하던 도중 나머지는 다 되는데 authetication부분에서 문제가 있는것을 발견했습니다. 단위테스트로 하다보니 권한이 부여가 되지 않아서 회원가입을 해도 다시 원상태로 복구되더군요 springsecurity6로 바뀌면서 새로 바뀐부분이 있길래 구글링해서 바꿀만큼 바꿔보고 찾을만큼 찾아봤다 생각했는데도

자꾸 권한부여 부분에서 문제가 생깁니다(위의 login함수)

이럴경우 어떻게 바꾸어야 할까요...?

 

저 위에

 SecurityContextHolder.getContext().setAuthentication(token);

라는 코드전에 토큰을 출력해 보니

UsernamePasswordAuthenticationToken [Principal=jungsik, Credentials=[PROTECTED], Authenticated=true, Details=null, Granted Authorities=[ROLE_USER]]

이렇듯 AUtheticated는 true로 반환되는데

redirect될때는 권한이 사라지는것 같습니다

답변 1

답변을 작성해보세요.

0

최정식님의 프로필

최정식

질문자

2024.03.29

자문자답합니다...

컨트롤러에서 반환할때 "redirect:/" 이렇게 반환을 할 경우

인증이 초기화가 되는듯하군요

"/index" 로 하니까 인증이 유지됩니다...