userDetailsService 메소드에 메모리인증용 유저와 관리자 생성
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter{
@Bean
PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.authorizeRequests()
.antMatchers(HttpMethod.GET, "/api/**").permitAll()
.anyRequest()
.authenticated()
.and()
.httpBasic(); //베이직 인증창
}
@Override
@Bean
protected UserDetailsService userDetailsService() {
UserDetails user = User.builder().username("user").password(passwordEncoder().encode("pass")).roles("USER").build();
UserDetails kim = User.builder().username("drv98").password(passwordEncoder().encode("1234")).roles("ADMIN").build();
return new InMemoryUserDetailsManager(user, kim);
}
}
관리자만 가능
포스트 생성, 업데이트 ,삭제 추가
@PreAuthorize("hasRole('ADMIN')")
포스트를 생성 해보자
ADMIN 계정으로 정보 수정후 생성