1.shiro框架处理请求,首先会先经过AccessControlFilter的onPreHandle方法。

 2.onPreHandle中
 ①isAccessAllowed:判断用户是否登录
 在登录的情况下会走此方法,此方法返回true直接访问控制器;
 ②onAccessDenied:是否是拒绝登录
 没有登录的情况下会走此方法。
 根据源码所示,如果isAccessAllowed方法返回true,则不会再调用onAccessDenied方法,如果isAccessAllowed方法返回flase,则会继续调用onAccessDenied方法。
3.登录成功的用户,进入CasFilter的onLoginSuccess方法,执行onLoginSuccess方法,重定向到登录成功后的页面。可以继承CasFilter类,重写onLoginSuccess方法,根据自己的需求,最后重定向到getSuccessUrl()方法指定的页面。

 4.没有登录的用户,进入UserFilter的onAccessDenied方法,执行saveRequestAndRedirectToLogin方法,执行saveRequest和redirectToLogin方法。
可以继承UserFilter类,重写onAccessDenied方法,自定义验证失败后的返回信息;

也可以继承UserFilter类,重写redirectToLogin方法,根据业务要求,重定向到登录页面。
