inflearn logo
강의

Course

Instructor

Developing Spring and JPA based web applications

Sign up Main Navigation Menu

회원가입 성공 후 redirect이동시 권한 질문

489

tjqudwns07021209

1 asked

0

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]라고 나옵니다ㅠ..문제를 알 수 있을까요?

java spring spring-boot jpa thymeleaf

Answer 3

1

whiteship

좋은 질문이네요. "/" 이 URL에는 스프링 시큐리티가 권한 체크 하지 않고 모두에게 (익명 사용자) 허용하는 URL로 설정해 두었기 때문입니다. "/"로 접속했을 때에도 USER 권한인지 확인하고 싶다면 SecurityConfig에서 "/"를 뺴야 합니다.

.mvcMatchers("/", "/sign-up", "/check-email-token", "/email-login", "/login-by-email", "/search/study").permitAll()

"/index"로 보내더라도 리다이렉트를 사용해서 가도록 "redirect:/index"를 사용하시는게 좋겠네요. POST 요청 처리 이후 뒤로가기 눌렀을 때 폼이 다시 보내지는 일을 방지하려면 redirect를 쓰는게 좋습니다.

0

hyuk2000s8968

리다이렉션 이후 세션이 초기화 됨에 따라 권한 설정도 초기화가 된거같아요 세션에 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

tjqudwns07021209

커뮤니티를 보니까 저랑 같은 문제를 겪었던 분들이 많은거 같아서 일단 임시로 해결책 올려봅니다 "redirect:/"부분을 "/index"로 바꾸면 되는거 같아요
--------------------------------
redirect시 권한이 왜 초기화 되는지 알고 싶습니다. 알려주세요 인프런!!

Study 개설하는 로직에 대해서 궁금점이 있습니다.

0

53

1

앱 재시작 후 회원가입

0

99

1

app.host 관련 질문이 있습니다

0

96

1

강의 버전 정보

0

123

1

event, study 참조

0

218

2

비밀번호 변경 로직 질문있습니다.

0

133

1

프로필 수정 처리 merge 질문입니다.

0

104

1

HtmlEmailService 개발하다 생긴 의문입니다

0

247

2

postgreSql 연결하여 JPA 를 통해 테이블 생성시 ZONE 테이블 생성에서 에러가 납니다

0

428

2

수업질문 [긴급] 로그인안되는 문제 말씀해주시는 부분 반영해서 최종 질문드립니다

0

258

2

[긴급-재업로드]수업질문 로그인 안 되는 문제

0

233

1

[긴급] 로그인해도 네비게이션 바가 안 바뀌고 있습니다!! 로그인이 안 됩니다 도와주세요

0

275

1

cropper 오류 문제로 질문드립니다..

0

284

2

authentication관련 질문...

0

493

2

모임참가 취소 할때 로직 질문

0

349

3

안녕하세요 기선님 질문이있습니다..

0

227

1

HTML코드 및 강의 중간자료들

0

677

3

springSecurity

0

518

2

버전 질문입니다.

0

299

1

부트스트랩, css

0

350

2

영속성 컨텍스트 질문

0

245

2

다시 강의를 보니 드는생각..

0

349

2

5:50에 나오는 HTML코드는 어디서 찾을 수 있나여?

0

310

1

세팅 질문있습니다.

0

341

1