@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityJavaConfig extends WebSecurityConfigurerAdapter {
@Autowired
private AuthenticationService authenticationService;
@Override
protected void configure(HttpSecurity http) throws Exception {
final Filter authenticationFilter = new JwtAuthenticationFilter(
authenticationManager(), authenticationService
);
final Filter authenticationErrorFilter = new AuthenticationErrorFilter();
http
.csrf().disable()
.addFilter(authenticationFilter)
.addFilterBefore(
authenticationErrorFilter, JwtAuthenticationFilter.class
)
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.exceptionHandling()
.authenticationEntryPoint(
new HttpStatusEntryPoint(HttpStatus.UNAUTHORIZED)
);
}
}
public void configure(AuthenticationManagerBuilder auth) {
auth
.inMemoryAuthentication()
.withUser("user")
.password("password")
.roles("USER")
.and()
.withUser("admin")
.password("password")
.roles("ADMIN","USER");
}
<http>와 동일addFilter() addFilterBefore() addFilterAfter() addFilterAt()등을 사용하여 등록세션 관리 관련 설정 세팅시 사용
sessionCreationPolicy()
and()