스프링에서 사용하는 UserDetails서비스는 시큐리티가 유저 객체가 존재하는지 각각의 서비스 구현체(inMemory, DAO 등) 를 통해 검색하게 되고 검색된 유저정보를 UserDetails 객체로 변환해서 AuthenticationProvider로 리턴하는 기능을 담당하고 있다. 만약 등록된 사용자가 없는 경우 UsernameNotFoundException 을 리턴하게 된다. UserDetilasService는 인터페이스이며 하나의 메소드만을 가지고 있다. 이를 사용하는 우리는 각각의 시스템의 특성에 맞는 UserDetailsService를 커스터마이징 해서 구현을 하게 되며 기본 적인 규현은 다음과 같다. 간단하게 DB 검색을 통해 유저가 있는 지 확인 후 User 객체를 생성한다. @Overr..
스프링 시큐리티는 정적 파일에 대해서도 보안 검사를 하게 된다. 그렇기 때문에 굳이 보안 필터를 적용할 필요가 없는 리소스에 대해서는 보안 필터를 거치지 않고 바로 통과하도록 지원하는 설정이 WebIgnore 설정이다. 다만 spring security 버전이 올라가면서 해당 설정도 변경이 되었다. 기존 설정 @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { ... @Ovrride public void configure(WebSecurity web) throws Exception { web.ignoring() .requestMatchers(PathRequest.toStatic..