自定义filter的配置
过滤器
配置的地方需要这么配置。
自定义一个过滤器,让它有任何一个角色都可以通过。
这样写的意思是当前用户要具备多个角色才能访问。
自定义shiro过滤器:两步
1,创建类继承 AuthorizationFilter
2,配置文件中配置:
<!--添加自定义过滤器--> <property name="filters"> <util:map> <!--注意这里的"rolesOr"可以放在上面过滤器中使用,"rolesOrFilter"是自定义过滤器Bean值--> <entry key="rolesOr" value-ref="rolesOrFilter"/> </util:map> </property>
Shiro内置过滤器:
anno:匿名访问
authBasic:httpBasic基础认证
authc:需签名认证访问
user:存在当前用户
logout:退出登录
perms:权限可以多个
roles:角色可以多个
自定义 权限过滤器 " rolesOr" 只要有一个角色满足就 可通过验证。
Shiro 中内置 anon authc logout 等过滤的含义
跟认证相关的过滤器
anon:不需要任何认证,可以直接访问
authBasic:HTTP
authc:需要认证之后才可以访问
user:需要当前存在用户才可以进行访问
logout:退出
跟授权相关的一些过滤器
perms:后面加个中括号,在里面加参数,需要具备一些相关权限才可以访问
roles:跟perms差不多,需要包含一定角色才可以进行访问
ssl:要求是安全的协议(HTTPS)
port:要求端口是中括号内的参数
配置自定义过滤器
自定义
授权相关filter需要继承AuthorizationFilter
认证相关filter需要继承AuthenticatingFilter
anon:不需要认证
authBasic:httpBasic
authc:需要认证之后才能访问
user:需要当前存在用户才能访问
logout:退出
perms[] :需要具备相关的权限才可以访问
roles[]:具备相应的角色才可以访问
ssl: https才可以访问
port[]:相应的端口才可以访问
Mark具有admin权限 中括号后面表示要同时具备才能访问
shiro内置过滤器
配置自己的RolesOrFilter.java
内置过滤器
Shiro过滤器
内建过滤器:roles[a,b,c] 必须权限都符合才可以、perms[a,b,c]必须权限同时具备才可以。
anon 代表无需权限
authc 代表需要认证才能访问
user 代表需要存在用户对象才能被访问
logout 登录退出才能被访问
perms 拥有权限才能被访问
roles 拥有角色才能被访问
port 相应端口号才能访问
自定义,分认证与授权,如果是认证则继承认证的类,如果是授权则继承授权的类。然后重写方法,其中参数Object o 即代表存在哪些参数,即perms[a,b,c]中的abc然后判断返回结果true 或者false即可。
在后台xml文件中引入该filter的bean,然后在主过滤器中引入filter的标签,写入entry key 与 value-ref,然后在filter过滤中
filterChainDefinitions地方按照之前的规则使用该自定义过滤,写入
key值即可。
继承 AuthorizatrionFilter 自定义Filter,
isAccessAllowed 用来校验权限 , 其中的Object 就是filter 定义时后面中括号里的字符串 , 如 perms[sys:delete,user:add] 里面的部分,
anon:不需要认证
authBasic:httpBasic
authc:需要认证之后才能访问
user:需要当前存在用户才能访问
logout:退出
perms[] :需要具备相关的权限才可以访问
roles[]: 需要具有[]内的相关权限才可以访问
ssl : 要求是安全的协议
port: 要求端口是[]中的
注入拦截器类
配置拦截器类
拦截器配置 unauthorizedUrl 没有权限是的跳转页面
anon:不需要认证
authBasic:httpBasic
authc:需要认证之后才能访问
user:需要当前存在用户才能访问
logout:退出
授权相关过滤器
perms:后面加中括号里面加参数,需要具备一些权限才能访问
roles:后面加中括号里面加角色,需要满足角色才能访问
sll:要求安全协议,hppts才能访问
port:要求中括号里面的端口才能访问
shiro内置过滤器

Shiro过滤器