Spring Framework
[Spring Security] 스프링 시큐리티 기본 API 및 Filter (8)
터프남
2022. 7. 17. 21:08
728x90
반응형
인가 API - 권한 설정과 표현식
권한 설정은 선언적 방식과 동적 방식으로 나눌 수 있다.
선언적 방식
- URL - http.antMatchers("/users/**").hasRole("USER")
- Method - @PreAuthroize("hasRole(`USER`)")
동적 방식 - DB 연동 프로그래밍
@Override
protected void configure(HttpSecurity http) throws Exception {
//인가정책
http
.antMatcher("/shop/**")
.authorizeRequests()
.antMatchers("/shop/login", "/shop/users/**").permitAll()
.antMatchers("/shop/user").hasRole("USER")
.antMatchers("/shop/admin/pay").hasRole("ADMIN")
.antMatchers("/shop/admin/**").access("hasRole('ADMIN') or hasRole('SYS')")
.anyRequest().authenticated();
}
설정 시에는 구체적인 경로가 먼저 오고 그것보다 큰 범위의 경로가 뒤에 오도록 해야 한다!
ex) /shop/admin/pay , /shop/admin/**
위에 설정한 인가 정책을 통과해야만 자원에 접근할 수 있다.
메모리 방식으로 사용자를 생성하거나 권한을 설정할 수 있다. 개발할 때 편리할거 같네
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication().withUser("user").password("{noop}1111").roles("USER");
auth.inMemoryAuthentication().withUser("sys").password("{noop}1111").roles("SYS");
auth.inMemoryAuthentication().withUser("admin").password("{noop}1111").roles("ADMIN");
}
참고
스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security - 인프런 | 강의
초급에서 중.고급에 이르기까지 스프링 시큐리티의 기본 개념부터 API 사용법과 내부 아키텍처를 학습하게 되고 이를 바탕으로 실전 프로젝트를 완성해 나감으로써 스프링 시큐리티의 인증과
www.inflearn.com
728x90
반응형