CustomFilter 프로젝트에 SpringSecurity를 포함시켜 개발하다보면, SpringSecurity에서 기본으로 제공하는 필터 뿐만 아니라 개발자가 원하는 방식대로 동작하는 필터가 필요함. 커스텀 필터를 구현하면 된다. 더보기 커스텀 필터를 구현하기 위해서는 다른 필터와 마찬가지로 Filter Interface를 구현해야 한다. 그러나 Filter Interface를 직접 구현하게 되면 중복실행 문제가 있어서 대부분의 경우에는 OncePerRequestFilter를 구현하기를 권장. CustomFilter 필요한 예시 개인보안노트서비스는 1명의 유저는 1개의 권한을 갖도록 되어있습니다. 권한이 나뉘어져있다보니 테스트하는데 어려움을 느꼈습니다. 그래서 tester 유저인 경우에는 모든 권한을 ..
WebSecurityConfigurerAdapter 개발자가 SpringSecurity 설정을 더 쉽게 구현하도록 구현되어있다. 위를 상속받으면 class에 @EnableWebSecurity 설정해줘야한다. URL Matchers 관련 기능 antMatchers() antMatchers("/signup").permitAll() "/signup" 요청을 모두에게 허용 mvcMatchers() mvcMatchers("/signup").permitAll() "/signup", "/signup/", "/signup.html" 와 같은 유사 signup 요청을 모두에게 허용한다. regexMatchers() 정규표현식으로 매칭한다 requestMatchers 위의 세개 모두 requestMatchers로 이루어져..
BasicAuthenticationFilter 따로 로그인이라는 과정을 하지 않았는데도 일회성으로 페이지를 불러올 수 있다. 로그인 데이터를 Base64로 인코딩해서 모든 요청에 포함해서 보내면 BasicAuthenticationFilter는 이걸 인증한다. 세션이 필요 없고 요청이 올때마다 인증이 이루어 집니다. (즉 stateless합니다.) 이런 방식은 요청할 때마다 아이디와 비밀번호가 반복해서 노출되기 때문에 보안에 취약 BasicAuthenticationFilter를 사용할 때는 반드시 https를 사용하도록 권장됨 BasicAuthenticationFilter를 사용하지 않을 것이라면 명시적으로 disable시켜주는 것이 좋다 @Override protected void configure(Ht..