Open 201411167 opened 4 years ago
Spring Security 설정
Spring Security는 FilterChainProxy라는 이름으로 내부에 여러 Filter들이 동작하고 있다.
설정은 WebSecurityConfigurerAdapter
클래스를 상속받은 클래스에서 메서드를 오버라이드하며 조정할 수 있다.
// WebSecurityConfig.java
@Configuration
@EnableWebSecurity // SpringSecurity를 설정할 클래스임을 정의
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
public void configure(WebSecurity web) throws Exception {
// static 디렉터리 하위 파일 목록은 인증 무시 ( = 항상 통과)
web.ignoring().antMatchers("/css/**", "/js/**", "/img/**", "/lib/**");
}
@Override
public void configure(HttpSecurity http) throws Exception {
// 페이지 권한 설정
http.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/user/myinfo").hasRole("MEMBER")
.antMatchers("/**").permitAll();
}
}
의존성 추가
org.springframework.boot:spring-boot-starter-security
,org.springframework.security:spring-security-test
UserDetails & UserDetailsService
UserDetails
: Spring Security에서 사용자의 정보를 담는 인터페이스이다.UserDetailsService
: DB에서 유저 정보를 직접 가져오는@Service
를 위한 인터페이스이다.Custom Entity Class for UserDetails, Custom Service Class for UserDetailsService 구현