[Spring] Spring Security 인증 구성
·
SpringBoot
스프링 시큐리티는 스프링 컨테이너 외부인 서블릿에 대해 필터를 추가함으로써 그 기능을 수행합니다. 개발자가 직접 이 필터들을 서블릿 컨테이너에 개발하는 대신 FilterChainProxy를 이용해 스프링 컨테이너 내에 존재하는 빈을 필터로 등록할 수 있도록 했습니다. 이번 포스팅에서는 더 나아가 이 필터 중 인증 관련 필터를 스프링 시큐리티가 어떻게 구성했는지, 개발자는 이를 어떻게 확장할 수 있을지에 대해 알아보겠습니다. 스프링 시큐리티 인증 처리 과정 첫번째로, 요청에 대한 인증입니다. HTTP의 Stateless특성으로 HTTP를 사용하는 서버는 매 순간의 접속이 어떤 클라이언트의 요청인지에 대한 상태를 저장하지 않습니다. 서버는 이 요청이 리소스에 대한 권한을 가지고 있는지만을 판단함으로써 접근을..
[Spring] 다수의 SecurityFilterChain 구성 방법
·
SpringBoot
SecurityFilterChain 빈을 스프링 컨테이너에 등록함으로써 저희는 서블릿에 필터를 적용할 수 있음을 저번 포스팅에서 다뤘습니다. 또한, 여러 SecurityFilterChain 을 구성함과 동시에 요청에 부합하는 단 하나의 SecurityFilterChain을 실행시킬 수 있음을 알았습니다. FilterChainProxy에 등록되는 SecurityFilterChain은 이를 결정하기 위해 SecurityMatcher를 사용하며, FilterChainProxy는 이를 바탕으로 요청에 따라 실행될 SecurityFilterChain을 선택합니다. FilterChainProxy는 이전 포스팅에서 언급했듯이 여러 SecurityFilterChain을 관리하는 스프링 컨테이너의 빈입니다. 서블릿 컨테..
SpringBoot의 작동원리를 직접 구현 해보며 이해하자(1) - Servlet
·
SpringBoot
자바는 웹 서비스를 서블릿(Servlet) 객체를 통해 구현한다. 서버로의 모든 웹 요청을 서블릿을 통해 받으며 그에 따른 결과를 서블릿을 통해 리턴한다. 도대체 이 서블릿이란 무엇일까? 서블렛이란? 서블릿이란, 자바를 사용하는 Request(클라이언트) - Response(서버) 모델에서 서버의 기능을 확장해주는 자바 클래스이다. 이 서블릿은 모든 종류의 요청에 응답할 수 있지만, 주로 웹 서버에서 호스팅 되는 어플리케이션의 기능을 확장하는데 사용된다. - Java Docs 웹 상의 통신은 TCP/IP 네트워크 모델에 따라 TCP 소켓을 열어 아이피 및 포트를 바인딩을 하고, 후에 요청이 들어올때마다 새로운 환영 소켓을 만들어야 할 뿐만 아니라, 응답을 위해 Request의 IP 데이터그램에서 IP를 ..