使用shiro开发的时候,配置拦截器有什么作用吗?配置了拦截器之后因该怎么写才能处理拦截到的请求呢?
初始化的时候配置了拦截器。但是是跳到了controller之后调用的Subject.login()方法进入的用户身份验证的方法不是吗?
那拦截器还有啥用?如何配置拦截器,可以让制定的链接直接进入用户身份验证的方法?
springboot+shiro
使用shiro开发的时候,配置拦截器有什么作用吗?配置了拦截器之后因该怎么写才能处理拦截到的请求呢?
初始化的时候配置了拦截器。但是是跳到了controller之后调用的Subject.login()方法进入的用户身份验证的方法不是吗?
那拦截器还有啥用?如何配置拦截器,可以让制定的链接直接进入用户身份验证的方法?
springboot+shiro
一、Shiro的常用拦截器:
1. authc:基于表单的拦截器;如“/**=authc”,如果没有登录会跳到相应的登录页面登录;主要属性:usernameParam:表单提交的用户名参数名( username); passwordParam:表单提交的密码参数名(password); rememberMeParam:表单提交的密码参数名(rememberMe); loginUrl:登录页面地址(/login.jsp);successUrl:登录成功后的默认重定向地址; failureKeyAttribute:登录失败后错误信息存储key(shiroLoginFailure);
2. logout:退出拦截器,主要属性:redirectUrl:退出成功后重定向的地址(/);示例“/logout=logout”
3. user:用户拦截器,用户已经身份验证/记住我登录的都可;示例“/**=user”
4. anon:匿名拦截器,即不需要登录即可访问;一般用于静态资源过滤;示例“/static/**=anon”
二、Shiro登陆入口/时机
1. 系统主动登陆:使用了subject.login()方法进行的用户登陆,此时的登陆处理策略为anon,相当于系统主动进行登陆操作,主动触发realm的doGetAuthenticationInfo,而不是通过shiro的post方式进行的登陆。
2. 系统被动登陆:即被动调用doGetAuthenticationInfo进行校验,此时的登陆处理策略为authc。即用户主动访问登陆界面/或者用户访问了需要登陆后才能访问的地址,跳转到登陆界面,post请求登陆地址。
参考推荐:https://www.roncoo.com/course/list.html?courseName=shiro