Closed langlichong closed 6 years ago
我也发现了这个问题,不太清楚作者的用意,我把 onAccessDenied 修改了一下解决这个问题
@Override
protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {
// 当前请求是否是登录请求
if (isLoginRequest(request, response)) {
return true;
} else {
loginFailure(response);
return false;
}
}
我的想法是只要是登录接口就放行,无关 get 与 post,如果 get 说明是登录页面,用户自然应该看到,如果是 post 放行后就走到我们的登录 controller,进行了登录处理。
额,为了偷懒,没考虑这个问题
@Smith-Cruise 对了,还一个问题,我不太明白,那个关闭 shiro 自带 session 一定要关吗?我发现我关了之后遇到鉴权注解比如@RequiresRoles
就会抛出未认证异常,不会主动调用doGetAuthorizationInfo方法,开启了就会调用
没有你这个问题吧,我这里一切都是正常的。
@Smith-Cruise 谢谢回复,我改动的比较多,可能哪里影响到了,我再看看
这个方法感觉没在shiro的机制中,如果直接访问该方法映射的请求,那么整个系统就相当于进行了两次登录操作(一次是该login本身登录逻辑,一次是shiro拦截器引起的登录逻辑),感觉怪怪的,不知道你的想法是啥