인프런 커뮤니티 질문&답변

codeddd님의 프로필 이미지

작성한 질문수

스프링부트 시큐리티 & JWT 강의

SecurityFilterChain에서 login 이후에 authenticated 인증 처리 오류?

해결된 질문

작성

·

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에서 어떻게 확인하고 있는지에 코드를 확인해야 할것 같아요.

 

위 정보만으로는 제가 해결해드릴수가 없어요

codeddd님의 프로필 이미지
codeddd
질문자

강의 처음부터 다시 진행했더니 됐습니다..

중간에 실수했나봐요.. 답변 감사합니다.

codeddd님의 프로필 이미지

작성한 질문수

질문하기