url을 요청하면 어떤 일이 벌어지나요? 자바와 스프링의 관점에서 설명해주세요.
spring security가 추가되면 어떻게 되나요?
이 질문을 받고 나는 대답할 수가 없었다..
분명 스프링 구조에 대해 강의를 들었는데 너무 오래 전이라 잊어버린 것이다.
그래서 시큐리티의 인증 과정과 스프링 mvc 동작 과정을 이 글에서 정리한다.
http 요청 -> WAS-> 필터 -> (디스패처)서블릿 -> 컨트롤러
1. 클라이언트는 URL을 통해 요청을 전송한다.
2. 디스패처 서블릿은 핸들러 매핑을 통해 요청된 url에 매핑된 핸들러를 조회한다.
3. 디스패처 서블릿은 핸들러를 실행할 수 있는 핸들러 어댑터를 찾는다.
4. 핸들러 어댑터는 해당 핸들러(컨트롤러)를 실행한다.
5. 컨트롤러는 비즈니스 로직을 처리한 후에 반환할 뷰의 논리 이름을 반환한다.
6. 디스패처 서블릿은 뷰 리졸버를 통해 뷰의 논리이름을 물리이름으로 변환시키고, 렌더링 역할을 담당하는 뷰객체를 반환한다.
7. 디스패처 서블릿은 컨트롤러에서 뷰에 전달할 데이터를 추가하고 렌더링한다.
8. 데이터가 추가된 뷰를 반환한다.