Apache Shiro 使用手册(五) Shiro 配置说明
发布时间:2021-04-12 19:12:50
Apache Shiro的配置主要分为四部分:
对象和属性的定义与配置
URL的过滤器配置
静态用户配置
静态角色配置
其中,由于用户、角色一般由后台进行操作的动态数据,因此Shiro配置一般仅包含前两项的配置。
Apache Shiro的大多数组件是基于POJO的,因此我们可以使用POJO兼容的任何配置机制进行配置,例如:Java代码、Sping XML、YAML、JSON、ini文件等等。下面,以Spring XML的配置方式为例,并且对其中的一些配置参数进行一些简单说明。
Shiro对象的配置:
主要是对Shiro各个组件的实现进行定义配置,主要组件在前文已做过简单介绍,这里不再一一说明。
<bean id="securityManager" class="org.apache.shiro.mgt.DefaultSecurityManager">
<property name="cacheManager" ref="cacheManager"/>
<property name="sessionMode" value="native"/>
<!-- Single realm app. If you have multiple realms, use the 'realms' property instead. -->
<property name="realm" ref="myRealm"/>
<property name="sessionManager" ref="sessionManager"/>
</bean>
Shiro过滤器的配置
Shiro主要是通过URL过滤来进行安全管理,这里的配置便是指定具体授权规则定义。
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<property name="securityManager" ref="securityManager"/>
<property name="loginUrl" value="/login.jsp"/>
<property name="successUrl" value="/home.jsp"/>
<property name="unauthorizedUrl" value="/unauthorized.jsp"/> -->
<property name="filterChainDefinitions">
<value>
# some example chain definitions:
/admin/** = authc, roles[admin]
/docs/** = authc, perms[document:read]
/** = authc
# more URL-to-FilterChain definitions here
</value>
</property>
</bean>
URL过滤器配置说明:
Shiro可以通过配置文件实现基于URL的授权验证。FilterChain定义格式:
URL_Ant_Path_Expression = Path_Specific_Filter_Chain
每个URL配置,表示匹配该URL的应用程序请求将由对应的过滤器进行验证。
例如:
[urls]
/index.html = anon
/user/create = anon
/user/** = authc
/admin/** = authc, roles[administrator]
/rest/** = authc, rest
/remoting/rpc/** = authc, perms["remote:invoke"]
URL表达式说明
1、URL目录是基于HttpServletRequest.getContextPath()此目录设置
2、URL可使用通配符,**代表任意子目录
3、Shiro验证URL时,URL匹配成功便不再继续匹配查找。所以要注意配置文件中的URL顺序,尤其在使用通配符时。
Filter Chain定义说明
1、一个URL可以配置多个Filter,使用逗号分隔
2、当设置多个过滤器时,全部验证通过,才视为通过
3、部分过滤器可指定参数,如perms,roles
Shiro内置的FilterChain
Filter Name | Class |
anon | org.apache.shiro.web.filter.authc.AnonymousFilter |
authc | org.apache.shiro.web.filter.authc.FormAuthenticationFilter |
authcBasic | org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter |
perms | org.apache.shiro.web.filter.authz.PermissionsAuthorizationFilter |
port | org.apache.shiro.web.filter.authz.PortFilter |
rest | org.apache.shiro.web.filter.authz.HttpMethodPermissionFilter |
roles | org.apache.shiro.web.filter.authz.RolesAuthorizationFilter |
ssl | org.apache.shiro.web.filter.authz.SslFilter |
user | org.apache.shiro.web.filter.authc.UserFilter |


猜你喜欢
- 最近遇到wordpress的头像在国内一直显示不出来,问题发生在WordPress 3.0以上,WordPress的头像服务Gravatar
- 发布日期:2007-09-19更新日期:2007-09-19受影响系统:Dibbler Dibbler 0.6不受影响系统:Dibbler
- 目前,市场上有多种Internet邮件服务器产品供选择,这些邮件服务器产品价格各异,所提供的功能也有不少差别。对于网络管理员来说,如何根据自
- 本教程为大家介绍 UCenter Home 1.5 的安装方法(以虚拟主机为例)。在安装 UCenter Home 1.5 之前,请确认在服
- InfoWorld举办的签名挽留Windows XP活动得到的支持数已经超过75000人,微软的生命周期表显示Windows XP将在6月底
- SpamAssassin的打分标准见http://spamassassin.org/tests.html,默认的标准可能并不适合我们,比如S
- 众所周知,版本系统在开发环境中是必不可少的,但是我们可以把代码免费的托管到GitHub上,如果我们不原意公开项目的源代码,公司又不想付费使用
- 每当我提到我的博客的时候,人们总是抬一下眼皮,或者微笑一下,表示“我不太了解,不过还不错”。但是当我提到我从博客中赚到钱时,我突然发现,他们
- 问题现象:系统开启,按‘F2'不能进入BIOS,直接进入系统,实际上在虚拟机上按F2就可以进入BIOS,这个应该怎么解决? 
- linux杀掉指定端口1、查看端口netstat -ntlp2、杀掉端口kill 端口3、重启服务service nginx&nb
- WordPress 3.3的beta 1 已经发布了,我们可以在这个版本中窥见一些最终版本的样子,这个版本还是发生了不小的变化。先找出一些明
- 相信读者都知道,Google对域名信任度要求越来越高,甚至高到了过分的地步。不过抱怨是没有用的,必须面对现实。从总体上来说,提高域名信任度的
- 微软的“马尔代夫”计划让Windows Mobile 6.5版本的手机也可以支持电容触控面板,功能将
- 经过过去几年的成长,WordPress已经不再仅仅是一个博客平台了。人们现在把它当作一个CMS(内容管理系统)来驱动不同类型的网站。将Wor
- Apache James是最好用的开源java邮件服务器之一,在配置smtp服务过程中,有些步骤不对的话邮件就发送不出去。0.打开james
- SEO的未来发展趋势互联网是一个庞大的信息和数据来源,大部分的互联网用户依靠搜索引擎找资料,组织网上信息是一个庞大的任务,搜索引擎优化目的就
- 2008年2月27日,Google PankRank进行了2008年的首次更新,我的几个站点没有什么变化。另外,昨天在群里看到一个人叫卖PR
- Google Adsense最新的动作挺频繁的。继取消地区的Adsense推介费用、广告换成大字体、产品名称改成中文名。现在推出了一个可能会
- 任何服务器,安全与性能是两个永恒的主题。作为企业的信息化安全人员,其主要任务就是如何在保障服务器性能的前提下提高服务器的安全性。而要做到这一
- 网站重建的目的是为了获得更好的表现。因此,第一项要做的事情就是用Seo来思考新网站以什么新形式出现,新的网站在建设过程中,要考虑保持原来网站