shiro拦截器使用的问题(springboot+shiro)

HaleyZhang 发布于 2018/08/31 08:36
阅读 1K+
收藏 1

使用shiro开发的时候,配置拦截器有什么作用吗?配置了拦截器之后因该怎么写才能处理拦截到的请求呢?

初始化的时候配置了拦截器。但是是跳到了controller之后调用的Subject.login()方法进入的用户身份验证的方法不是吗?

那拦截器还有啥用?如何配置拦截器,可以让制定的链接直接进入用户身份验证的方法?

springboot+shiro

加载中
0
nonnetta
nonnetta

一、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请求登陆地址。

参考文章:

http://jinnianshilongnian.iteye.com/blog/2018398

https://www.jianshu.com/p/0a5d3d07a151

希望我的答案能对您起到一定的帮助,盼最佳答案。

 

0
小威架构
小威架构

https://gitee.com/zhang.w/boot-backend.git 看下这个里的类ShiroConfig,可能会有帮助

返回顶部
顶部