24.03.29 01:25 작성
·
264
·
수정됨
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될때는 권한이 사라지는것 같습니다
답변 2
0
2024. 07. 02. 00:33
고생하셨군요.
redirect는 죄가 없습니다. "/" 이쪽으로 보낸게 문제입니다. "/" 이 URL 자체가 권한 확인하지 않겠다고 설정한 URL이라서 그렇습니다.
https://www.inflearn.com/questions/1300000/%ED%9A%8C%EC%9B%90%EA%B0%80%EC%9E%85-%EC%84%B1%EA%B3%B5-%ED%9B%84-redirect%EC%9D%B4%EB%8F%99%EC%8B%9C-%EA%B6%8C%ED%95%9C-%EC%A7%88%EB%AC%B8
여기에도 답글을 달아놨으니 확인해 주세요.
2024. 06. 23. 22:51
감사합니다 저도 같은 문제를 겪어서ㅠ.. 진짜 엄청 고생했어요ㅠ 덕분에 일단 다음 진도로 넘어갈꺼 같습니다ㅠ 복받으세요🙏