shiro框架中有攔截器(過濾器)Filter機制,先將我們的request請求進行匹配,如果匹配成功,則執行相應的Filter,如果不匹配,則放行,讓Servlet的攔截器去匹配,執行相應的Controller。
Filter修改request的url,讓Filter授權失敗了,還能繼續訪問我們的一個Controller層 接口。
protected boolean isAccessAllowed(ServletRequest servletRequest, ServletResponse servletResponse, Object o){
String path="/user/haveNoPermission";
httpServletRequest.getRequestDispatcher(path).forward(httpServletRequest,servletRespons
e);
return true;
}
然後Filter還要return true,放行請求,讓Servlet去攔截匹配,這樣就可以去訪問執行我們的 /user/haveNoPermission 接口方法了。