4.3. 결론

일단 한번 설정해 두기만 하면 채널 보안 필터를 사용하는 것은 매우 쉽다. 단순히 프로토콜(HTTP나 HTTPS)나 포트(80, 8080, 443, 8443 등)에 관계없이 페이지를 요청하기만 하면 된다. 확실히 여러분은 최초 요청을 어떻게 하는지 알아야 할 필요가 있을 것이며(아마 web.xml <welcome-file>이나 잘 알려진 기본 페이지 URL을 통해), 일단 필터에 최초 요청이 이루어 지고 나면 애플리케이션 컨텍스트에 정의되어 있는 대로 재지정을 수행할 것이다.

게다가 여러분은 독자적인 ChannelProcessor 구현체를 ChannelDecisionManagerImpl에 추가할 수도 있다. 예를 들어 여러분은 HttpSession 속성을 지정하여 "다음 그림의 내용을 입력하시오"와 같은 과정을 통해 사용자가 사람인지를 알아낼 수도 있다. 여러분이 작성한 ChannelProcessorREQUIRES_HUMAN_USER 설정 속성에 반응하여 HttpSession 속성이 현재 설정되어 있지 않을 경우 사용자가 사람인지를 확인하는 유효성 검증 절차를 시작하기 위해 적절한 시작지점으로 재지정할 수 있다.

ChannelProcessorAccessDecisionVoter 중 어느 곳에 보안 체크를 둘지 결정하기 위해서는 전자는 인증되지 않은 요청을 처리하기 위한 것이고, 후자는 인증된 요청을 처리하도록 설계된 것임을 떠올리도록 한다. 따라서 후자는 인증된 인증주체의 허가된 권한에 접근한다. 추가적으로 AccessDecisionVoter에 의해 탐지된 문제는 궁극적으로 AccessDeniedException을 발생시키는데 반해(관장하는 AccessDecisionManager에 따라), ChannelProcessor에 의해 탐지된 문제는 일반적으로 HTTP/HTTPS 재지정을 하도록 함으로써 주어진 요구사항을 만족시킨다.