회원가입 성공 후 redirect이동시 권한 질문
490
1 câu hỏi đã được viết
19강을 듣고 있는데 문제가 생겨서 질문 드립니다
@PostMapping("/sign-up")
public String signUpSubmit(
@ModelAttribute
@Valid
SignUpForm signUpForm,
Errors errors
if (errors.hasErrors()){
return "account/sign-up";
}
Account account = accountService.processNewAccount(signUpForm);
accountService.login(account);
// 권한 : Authorities=[ROLE_USER] 반환 성공
log.info("@@@ 권한"+ SecurityContextHolder.getContext().getAuthentication().toString());
return "redirect:/";
}
리다이렉트 직전에 로그를 만들어 권한을 찍어보니 Granted Authorities=[ROLE_USER]가 반환되는데, 리다이렉트를 한 곳에서는 로그에 권한을 찍어보니 [ROLE_ANONYMOUS]라고 나옵니다ㅠ..문제를 알 수 있을까요?
Câu trả lời 3
1
좋은 질문이네요. "/" 이 URL에는 스프링 시큐리티가 권한 체크 하지 않고 모두에게 (익명 사용자) 허용하는 URL로 설정해 두었기 때문입니다. "/"로 접속했을 때에도 USER 권한인지 확인하고 싶다면 SecurityConfig에서 "/"를 뺴야 합니다.
.mvcMatchers("/", "/sign-up", "/check-email-token",
"/email-login", "/login-by-email", "/search/study").permitAll()
"/index"로 보내더라도 리다이렉트를 사용해서 가도록 "redirect:/index"를 사용하시는게 좋겠네요. POST 요청 처리 이후 뒤로가기 눌렀을 때 폼이 다시 보내지는 일을 방지하려면 redirect를 쓰는게 좋습니다.
0
리다이렉션 이후 세션이 초기화 됨에 따라 권한 설정도 초기화가 된거같아요 세션에 SecurityContext를 반영해 해결했어요
// 서비스단 login메서드
public void login(Account account) { UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken( new UserAccount(account), account.getPassword(), List.of(new SimpleGrantedAuthority("ROLE_USER"))); SecurityContextHolder.getContext().setAuthentication(token); // 세션에 SecurityContext 반영 HttpSession session = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()) .getRequest().getSession(); session.setAttribute(HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY, SecurityContextHolder.getContext()); }
0
커뮤니티를 보니까 저랑 같은 문제를 겪었던 분들이 많은거 같아서 일단 임시로 해결책 올려봅니다 "redirect:/"부분을 "/index"로 바꾸면 되는거 같아요
--------------------------------
redirect시 권한이 왜 초기화 되는지 알고 싶습니다. 알려주세요 인프런!!
Study 개설하는 로직에 대해서 궁금점이 있습니다.
0
53
1
앱 재시작 후 회원가입
0
99
1
app.host 관련 질문이 있습니다
0
96
1
강의 버전 정보
0
124
1
event, study 참조
0
218
2
비밀번호 변경 로직 질문있습니다.
0
133
1
프로필 수정 처리 merge 질문입니다.
0
104
1
HtmlEmailService 개발하다 생긴 의문입니다
0
248
2
postgreSql 연결하여 JPA 를 통해 테이블 생성시 ZONE 테이블 생성에서 에러가 납니다
0
428
2
수업질문 [긴급] 로그인안되는 문제 말씀해주시는 부분 반영해서 최종 질문드립니다
0
259
2
[긴급-재업로드]수업질문 로그인 안 되는 문제
0
234
1
[긴급] 로그인해도 네비게이션 바가 안 바뀌고 있습니다!! 로그인이 안 됩니다 도와주세요
0
275
1
cropper 오류 문제로 질문드립니다..
0
284
2
authentication관련 질문...
0
493
2
모임참가 취소 할때 로직 질문
0
349
3
안녕하세요 기선님 질문이있습니다..
0
228
1
HTML코드 및 강의 중간자료들
0
677
3
springSecurity
0
519
2
버전 질문입니다.
0
299
1
부트스트랩, css
0
350
2
영속성 컨텍스트 질문
0
245
2
다시 강의를 보니 드는생각..
0
349
2
5:50에 나오는 HTML코드는 어디서 찾을 수 있나여?
0
311
1
세팅 질문있습니다.
0
341
1

