shiroFilter 中的 isAccessAllowed
/**
* 这里我们详细说明下为什么最终返回的都是true,即允许访问
* 例如我们提供一个地址 GET /article
* 登入用户和游客看到的内容是不同的
* 如果在这里返回了false,请求会被直接拦截,用户看不到任何东西
* 所以我们在这里返回true,Controller中可以通过 subject.isAuthenticated() 来判断用户是否登入
* 如果有些资源只有登入用户才能访问,我们只需要在方法上面加上 @RequiresAuthentication 注解即可
* 但是这样做有一个缺点,就是不能够对GET,POST等请求进行分别过滤鉴权(因为我们重写了官方的方法),但实际上对应用影响不大
*/
Filter
所有的请求都会先经过 Filter,继承官方的 BasicHttpAuthenticationFilter,并且重写鉴权的方法。
* <p>
* 代码的执行流程 preHandle -> isAccessAllowed -> isLoginAttempt -> executeLogin
Realm
用户验证以及权限验证的地方,用户验证多加了一个校验,就是我们当前请求的 token 中包含的时间戳与缓存中的 RefreshToken 对比,一致才验证通过。
现在只做了认证,还没做授权
Header中如果包含Authornizatioin,则需要判断鉴权,如果不包含则按游客处理
标签:请求,验证,用户,isAccessAllowed,登入,鉴权,shiro From: https://www.cnblogs.com/WZXwzx/p/17294336.html