이 선택한 MVC 프레임 워크에 따라 일반적으로 의존한다 :
- 일부 UI 메커니즘 (예를 들어, JSP가) 당신이 예외를 처리하는 데 사용할 수있는 '오류 페이지'를 가질 수 있습니다.
- 더 세련된 UI 프레임 워크에는 원하는 모든 작업을 수행 할 수있는 '모든 사람에게 캐치'예외 처리기 및/또는 컨트롤러가 있습니다 (예외 검사, HTTP 상태 코드 설정, 최종 사용자를 해당 특정 문제에 대한 오류 페이지로 리디렉션). , 등). 이에 대한 MVC 메커니즘을 사용하지 않으려면
그러나,이 작업을 수행 할 서블릿 필터를 만들 수 있습니다 :
try/catch 블록에서 FilterChain을 실행하는 것입니다 필터 , AuthorizationException을 포착합니다. 하나를 잡으면 'unauthorizedUrl'에 302 리디렉션을 보냅니다. 그들이 이제까지 FilterChain을 호출하기 전에 제목 권한을 부여하기 때문에
시로 기존 필터가이 작업을 수행하지 않는 이유는 : 제목이 인증 기준을 충족하지 않는 경우 을 필터 체인도를 호출하지 않습니다 (따라서 더가 않습니다 catch하는 AuthorizationException).
시로에서 다른 행동을보고 싶다면 issue으로 신고하고 잠재적 인 새로운 기능으로 토론하십시오.
Shiro 1.2.1에서 모든 Shiro 예외는 일반 ServletException으로 래핑됩니다. AbstractShiroFilter.doFilterInternal를 참조하십시오. 따라서 필터에서 ShiroException을 잡는 것은 작동하지 않습니다. –