게시글
질문&답변
2024.02.17
권한 설정 부여가 안됨
(사진)처럼 db의 role에 직접 ROLE_xxx로 설정해주니 권한 인식 하네요
- 0
- 2
- 874
질문&답변
2024.02.17
/loginForm?error가 발생하며 로그인이 안 됩니다.
저도 db에 생성한 계정이 있고 , 로그인시도시 loginForm?error로 이동되는 현상이 있었습니다.SpringSecurity가 버전업으로 기존 방식이 deprecated되어서authorizeHttpRequests(Customizer...)가 제공하는 템플릿에 강의 내용을 적용했었는데요.이 템플릿 하단에 첨부되었던 userDetailService 블럭을 주석처리하여 해결하였습니다.@Beanpublic SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {http.csrf((csrf)->csrf.disable()).authorizeHttpRequests((authorizeHttpRequests) ->authorizeHttpRequests.requestMatchers("/user/**").authenticated().requestMatchers("/admin/**").hasRole("ADMIN").requestMatchers("/manager/**").hasAnyRole("ADMIN", "MANAGER").anyRequest().permitAll()).formLogin((formLogin) ->formLogin// .usernameParameter("username") // 파라미터로 보낼 이름값 설정하는 부분. username이라고 안쓰고 다른이름 쓰고 싶은 경우 for loadUserByUsername// .passwordParameter("password").loginPage("/login")// .failureUrl("/authentication/login?failed").loginProcessingUrl("/loginProc") // login주소가 호출되면 시큐리티가 낚아채서 대신 로그인 진행.defaultSuccessUrl("/"));return http.build();}// auth에서 따로 관리하므로 해당 Bean은 불필요하다. // @Bean// public UserDetailsService userDetailsService() {// PasswordEncoder encoder = PasswordEncoderFactories.createDelegatingPasswordEncoder();// String pw = encoder.encode("password");// UserDetails user = User.withUsername("user")// .password("1234")// .roles("USER")// .build();// UserDetails admin = User.withUsername("admin")// .password("password")// .roles("ADMIN", "USER")// .build();//// return new InMemoryUserDetailsManager(user, admin);// }
- 0
- 5
- 1.6K