우리의 스프링 부트 어플리케이션은 서블릿 컨테이너라는 톰캣 서블릿 컨테이너 위에 존재하게 된다. 클라이언트로부터 요청이 들어오면, 먼저 서블릿 컨테이너가 그 요청을 받아서, 그 안에 필터들을 거친 후에, 스프링 부트 컨트롤러에 그 요청이 도달하게 된다. 스프링 시큐리티는, Security Config라는 자바 Config 파일을 등록해두면, 스프링 필터에, 특정한 필터를 추가해서 특정한 요청을 가로챈다. 가로챈 후에, 어떠한 특정 권한을 가지고 있는지 분석을 하는데, 권한이 없다면 요청을 막게 된다. 로그인 같은 경우에는 모든 필터에 이 로그인 페이지를 접근을 허용한 다음, 스프링 부트 컨트롤러에 접근하면 그 다음 인증을 수행한다. 인증이 수행되고, 마이 페이지 컨트롤러 같은 인증이 필요한 컨트롤러에 접..
사용자는 자격 증명을 로그인 페이지에 입력하여 백엔드 웹 애플리케이션에 요청을 시작한다. 브라우저 모바일 웹 또는 Postman을 통해 클라이언트는 Spring Security 프레인워크로 보호된 이 요청을 전송한다. 1. 들어오는 요청 필터링 요청이 서블릿 컨테이너 또는 톰캣 서버에 도착하면 클래스 경로 설정으로 인해 내장된 Spring Security 필터가 모든 들어오는 요청을 감시한다. 이 필터들은 구성된 경로를 기반으로 요청된 자원이 보호되었는지 여부를 판단한다. 2. 초기 인증 처리 자원이 보호되면 필터는 해당 사용자에게 강제로 인증을 요구할지 여부를 결정한다. 필요한 경우 로그인 페이지가 사용자의 첫 번째 보호 웹 페이지 액세스를 위해 표시된다. 3. 이후의 인증 확인 이후의 시도에서 필터는..
애플리케이션 보호는 항상 흥미롭지만 동시에 너무 까다롭다. 우리가 고유한 코드나 프레임워크를 사용하면서 발생하는 웹 어플리케이션의 취약성을 매일 다방면으로 고려하고 대응해야 하기 때문이다. 해커들은 더 많은 취약점을 찾고, 보안 위협이 증가하고 있으며, 매일 수백 개의 보안 취약점이 발견되고 있다. 이런 어려움을 극복하기 위해 우리는 스프링 시큐리티와 같은 프레임워크를 채택하게 된다. 스프링 시큐리티는 보안에 중점을 둔 헌신적인 개발자들이 구축한 강력한 프레임워크를 제공한다. 우리는 보안 전문가가 아니지만, 스프링 시큐리티를 도입함으로써 그들이 이미 구현한 탁월한 기능을 활용할 수 있다. 1. 비즈니스 로직에 집중할 수 있는 여유 우리는 고객들의 새로운 요구사항을 수용하면서도 보다 향상된 비즈니스 로직을..