前言
前面的几篇博客都是说的用户如何认证,如何授权,那么用户认证授权之后,我们该如何使用这些信息呢?这里我们就需要使用到Shiro框架中的拦截器功能.通过拦截器功能实现用户权限和角色的应用,下面我们就来看一下我们如何使用拦截器实现用户权限认证的应用.
拦截器分类说明
在配置拦截器之前,我们需要先了解Shiro本身给我们提供的拦截器都有什么,都有着什么样的特点.下面我们就来用表格的形式来看一下各种拦截器的特点.
简写(加粗为常用)
名称
优先级(1为最高)
说明
对应Java类
anon
匿名拦截器
1
不需要登录就能访问,一般用于静态资源,或者移动端接口
org.apache.shiro.web.filter.authc.AnonymousFilter
authc
登录拦截器
2
需要登录认证才能访问的资源
org.apache.shiro.web.filter.authc.FormAuthenticationFilter
authcBasic
Http拦截器
3
Http身份验证拦截器,非常用类型,不太了解
org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter
logout
登出拦截器
4
用户登出拦截器,主要属性:redirectURL退出登录后重定向的地址
org.apache.shiro.web.filter.authc.LogoutFilter
noSessionCreation
不创建会话拦截器
5
调用 subject.getSession(false) 不会有什么问题,但是如果 subject.getSession(true) 将抛出 DisabledSessionException 异常
org.apache.shiro.web.filter.authc.NoSessionCreationFilter
prems
权限拦截器
6
验证用户是否拥有资源权限
org.apache.shiro.web.filter.authc.PermissionsAuthorizationFilter
port
端口拦截器
7
其主要属性: port(80) 如果用户访问该页面是非 80,将自动将请求端口改为 80 并重定向到该 80 端口
org.apache.shiro.web.filter.authc.PortFilter
rest
rest风格拦截器
8
rest 风格拦截器,自动根据请求方法构建权限字符串构建权限字符串;非常用类型拦截器
org.apache.shiro.web.filter.authc.HttpMetho