Back End/Spring Security
-
[Spring Security] Filter 에 대한 오해와 진실 (doFilter의 정확한 작동방식에 대한 심층분석과 Filter의 흐름) (Spring 200 OK but No Content)Back End/Spring Security 2021. 12. 8. 22:00
# [만연한 오해] doFilter() 기준으로 위쪽이 API 호출 전처리 과정이고, 아래쪽이 API 호출 후처리 과정이다. (틀린 말은 아니나 상황에 따라 아닌 경우가 있으므로, 이에대해 확실히 알고 넘어갈 필요가 있다.) @Component //default 제일 마지막 필터로 public class TestFilter implements Filter{ @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // API 호출 전 로직? chain.doFilter(request, response); // API ..
-
[Spring Security] 응답코드가 200이지만 body 가 비어있을 때, API까지 Request가 도달하지 못할 때(response code 200 but no body)Back End/Spring Security 2021. 12. 8. 20:48
보통 이런 경우는 Filter단에서 Request 나 Response 의 버퍼를 읽어서 내용이 유실된 경우에 발생한다. 하지만 필자가 겪은 현상은 아마 그 누구도 겪지 못한 현상이 아닐까 한다. 전제조건이 필요하기 때문이다. (개발미숙 + Filter 사용 + 이왕 파고드는거 완벽하게 내 것으로 만들고 싶은 주제파악안되는 욕심) [응답코드가 200인데 body가 비어있고, Request가 API까지 도달도 못하고, 또 수정을 하니 어떤 URL에서는 API까지 도달을 하는데 또 다른 URL에서는 API까지 도달을 못하기도 했다...] 3일에 걸친 디버깅 끝에 원인을 찾은 나 자신이 뿌듯하기도 하고, 절대 잊어버리지 않기 위해 포스팅을 해본다... (찾은것이 신기할 정도...) 와 진짜,,, 왠만한 Secu..
-
[Spring Security] CSRF 에서 출발한 여행기 (CSRF 토큰만들기)(Feat. Spring & React)Back End/Spring Security 2021. 12. 3. 19:55
CSRF 관련 최신포스팅 바로가기 이 글은 CSRF 공격방식에 대한 글을 읽고, 이에 대한 방어 수단으로 쿠키를 만든다길래 직접 해보고 싶어 이리저리 삽질한 비전공자의 여행일기입니다. (+ 학생 때 시도한 뻘짓 기록 일기입니다. CSRF 적용관련 정보가 필요하시다면 최신포스팅을 읽어주세요!) # 한국인은 결론 먼저 ..! 결론부터 말씀드리자면, Spring Security 는 default로 헤더에 Cache-Control 를 추가하고, no-cashe, no-store 등의 옵션을 추가 합니다. 이는 브라우저에게 '응 쿠키 못써' 라고 알려주는 역할을 합니다. 그러니까 쿠키를 사용하려면 Cache-Control 라는 헤더를 없애주어야 합니다. 그리고, 쿠키를 쓰는 방식은 보안에 취약하여 이제는 쿠키 없..
-
[Spring Security] 스프링 시큐리티 개요 (작동방식)Back End/Spring Security 2021. 11. 3. 15:44
# 서블릿 컨테이너 (Servlet Container) 서블릿들의 생명주기를 담당하는 톰캣과 같은 웹 애플리케이션 Client의 Request와 Response 를 처리하기 위해 웹서버와 소켓을 만들어 통신 이러한 웹 애플리케이션(J2EE)은 기본적으로 필터와 서블릿으로 구성되어 있음 모든 Request는 Filter Chain을 반드시 거쳐야만 서블릿 서비스에 도착하게 된다. # 스프링 시큐리티 (Spring Security) FilterChian 사이에 DelegatingFilterProxy 라는 필터를 만들어, 메인필터체인에 끼워넣어 보안을 관리한다. url 패턴에 따라 적용되는 필터체인을 다르게 할 수 있다. # 제공되는 필터의 종류 HeaderWriterFilter CorsFilter Csrf..