Shiro内置过滤器

运行 Web 应用时,Shiro会创建一些有用的默认 Filter 实例,并自动地在 [main] 项中将它们置为可用

这些可用的默认的 Filter 实例是被 DefaultFilter 枚举类定义的(枚举的名称字段就是可供配置的名称)

  • ssl :org.apache.shiro.web.filter.authz.SslFilter
  • user :org.apache.shiro.web.filter.authz.UserFilter
  • anon :org.apache.shiro.web.filter.authc.AnonymousFilter
  • port :org.apache.shiro.web.filter.authz.PortFilter
  • rest :org.apache.shiro.web.filter.authz.HttpMethodPermissionFilter
  • authc :org.apache.shiro.web.filter.authc.FormAuthenticationFilter
  • perms :org.apache.shiro.web.filter.authz.PermissionAuthorizationFilter
  • roles :org.apache.shiro.web.filter.authz.RolesAuthorizationFilter
  • logout :org.apache.shiro.web.filter.authc.LogoutFilter
  • authcBasic :org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter
  • noSessionCreation :org.apache.shiro.web.filter.session.NoSessionCreationFilter

这些过滤器分为两组:

u 认证过滤器:anon(不认证也可以访问),authcBasic, authc(必须认证后才可

访问),user

u 授权过滤器:perms(指定资源需要哪些权限才可以访问),Roles, ssl,rest, port

注意 user 和 authc 不同

**当应用开启了rememberMe时,用户下次访问时可以是一个user,但绝不会是authc,因为authc是需要重新认证的
user表示用户不一定已通过认证,只要曾被Shiro记住过登录状态的用户就可以正常发起请求,比如rememberMe
**

说白了:以前的一个用户登录时开启了rememberMe,然后他关闭浏览器,下次再访问时他就是一个user,而不会authc

下面举几个例子介绍一下(注意URLPattern写的是两颗星,这样才能实现任意层次的全匹配)

  1. /admin/**=anon:无参,表示可匿名访问
  2. /admin/user/**=authc:无参,表示需要认证才能访问
  3. /admin/user/**=authcBasic:无参,表示需要httpBasic认证才能访问
  4. /admin/user/**=ssl:无参,表示需要安全的URL请求,协议为https
  5. /home=user:表示用户不一定需要通过认证,只要曾被 Shiro 记住过登录状态就可以正常发起 /home 请求
  6. /edit=authc,perms[admin:edit]:表示用户必需已通过认证,并拥有 admin:edit 权限才可以正常发起 /edit 请求
  7. /admin=authc,roles[admin]:表示用户必需已通过认证,并拥有 admin 角色才可以正常发起 /admin 请求
  8. /admin/user/**=port[8081]:当请求的URL端口不是8081时,跳转到schemal://serverName:8081queryString
  9. /admin/user/**=rest[user]:根据请求方式来识别,相当于/admins/user/**=perms[user:get]或perms[user:post]等等
  10. /admin**=roles["admin,guest"]:允许多个参数(逗号分隔),此时要全部通过才算通过,相当于hasAllRoles()
  11. /admin**=perms["user:add:*,user:del:*"]:允许多个参数(逗号分隔),此时要全部通过才算通过,相当于isPermitedAll()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值