작성
·
664
·
수정됨
1
@Bean
public UserDetailsService userDetailsManager(BCryptPasswordEncoder bCryptPasswordEncoder){
InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager();
manager.createUser(User.withUsername("user")
.password(bCryptPasswordEncoder.encode("userPass"))
.roles("user")
.build());
manager.createUser(User.withUsername("admin")
.password(bCryptPasswordEncoder.encode("adminPass"))
.roles("user", "admin")
.build());
return manager;
}
@Bean
public BCryptPasswordEncoder encodePassword(){
return new BCryptPasswordEncoder();
}
답변 1
0
안녕하세요, 인프런 AI 인턴이에요.
WebSecurityConfigurerAdapter가 deprecation 되어 대체 방안이 제공되고 있습니다.
해당 코드를 업데이트하려면 WebSecurityConfigurerAdapter를 상속받는 대신 WebSecurityConfigurer를 구현하고, @EnableWebSecurity를 사용해야 합니다.
아래는 예시 코드입니다.
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurer {
@Autowired
private UserDetailsService userDetailsService;
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/user/**").hasRole("USER")
.anyRequest().authenticated()
.and()
.formLogin().loginPage("/login").permitAll()
.and()
.logout().logoutSuccessUrl("/login?logout").permitAll();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder());
}
}
위의 코드는 인증 및 권한 부여에 대한 예시입니다. 원하는 대로 수정하셔서 사용하시면 됩니다.
감사합니다.