해결된 질문
작성
·
1.1K
0
안녕하세요 수업중 막히는 부분이 있어서 질문 남깁니다.
현재 spring 3, security 6.2버전으로 진행중입니다.
구글링해서 강의 버전에 따른 오류 부분은 고쳤는데요.. '
문제는 로그인 처리해서 PrincipalDetails에 db에 있는 유저 값을 잘 담기는 했는데..
security config에서 설정한 권한별 경로로 접근하는순간 302로 다시 로그인 홈페이지로 리다이렉트 돼서
수업 진행이 안됩니다.. 뭐가 문제인걸까요? ㅜㅜ
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.csrf(AbstractHttpConfigurer::disable)
.cors(AbstractHttpConfigurer::disable)
.sessionManagement(s -> s.sessionCreationPolicy(SessionCreationPolicy.STATELESS));
http
.authorizeHttpRequests(au ->
au.requestMatchers("/", "/join", "/login").permitAll()
.requestMatchers("/user/**").authenticated()
.requestMatchers("/manager/**").hasAnyRole("ADMIN", "MANAGER")
.requestMatchers("/admin/**").hasRole("ADMIN")
.anyRequest().authenticated()
);
http.formLogin(f -> f.loginPage("/loginForm")
.loginProcessingUrl("/login")
.usernameParameter("userName")
.passwordParameter("password")
.defaultSuccessUrl("/")
.permitAll())
.httpBasic(h -> h.disable());
// logout
http.logout(logout -> logout.
logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
.logoutSuccessUrl("/loginForm"));
return http.build();
}
답변 1
0
이 부분은 설정은 제대로 되어 있는것으로 보여요,
다만 User 엔티티에 권한을 담는 필드가 있는지와, 그 권한을 UserDetails에서 어떻게 확인하고 있는지에 코드를 확인해야 할것 같아요.
위 정보만으로는 제가 해결해드릴수가 없어요
강의 처음부터 다시 진행했더니 됐습니다..
중간에 실수했나봐요.. 답변 감사합니다.