Shiro主配置文件分析

Shiro旨在适用于任何环境,从简单的命令行应用程序到最大的企业集群应用程序。由于环境的多样性,存在许多适合于配置的配置机制。本节介绍仅Shiro核心支持的配置机制。

许多配置选项

Shiro的SecurityManager实现和所有支持组件都兼容JavaBeans。这使得Shiro可以配置几乎任何配置格式,例如常规Java,XML(Spring,JBoss,Guice等),YAML,JSON,Groovy Builder标记等。

程序化配置

创建SecurityManager并使其可供应用程序使用的绝对最简单的方法是创建一个org.apache.shiro.mgt.DefaultSecurityManager并在代码中连接它。

SecurityManager对象图

正如架构章节中所讨论的,Shiro的SecurityManager实现本质上是嵌套安全特定组件的模块化对象图。因为它们也是JavaBeans兼容的,所以可以调用任何嵌套的组件getter和setter方法来配置SecurityManager它及其内部对象图。

例如,如果要将SecurityManager实例配置为使用自定义SessionDAO来自定义会话管理,则可以SessionDAO使用嵌套的

使用直接方法调用,您可以配置SecurityManager对象图的任何部分。

但是,就像程序化定制一样简单,它并不代表大多数真实世界应用程序的理想配置。编程配置可能不适合您的应用程序有几个原因:

它要求您了解并实例化直接实现。如果你不必了解具体的实现以及在哪里找到它们会更好。

由于Java的类型安全性,您需要将通过get*方法获得的对象转换为其特定的实现。如此多的演员是丑陋的,冗长的,并且将你与实现课程紧密结合在一起。

该SecurityUtils.setSecurityManager方法调用,使实例化的SecurityManager实例中,VM静态单,其中,同时罚款许多应用中,会如果超过一个启用四郎的应用程序是在同一个JVM上运行会造成问题。如果实例是应用程序单例,但不是静态内存引用可能会更好。

每次要进行Shiro配置更改时,它都要求您重新编译应用程序。

然而,即使有这些警告,直接编程操作方法在内存受限的环境中仍然很有价值,例如智能手机应用程序。如果您的应用程序不在内存受限的环境中运行,您将发现基于文本的配置更易于使用和阅读。

INI配置

大多数应用程序都可以从基于文本的配置中受益,这些配置可以独立于源代码进行修改,甚至可以让那些不太熟悉Shiro API的人更容易理解。

为了确保公共分母基于文本的配置机制能够在所有具有最小第三方依赖性的环境中工作,Shiro支持INI格式来构建SecurityManager对象图及其支持组件。INI易于阅读,易于配置,易于设置,适合大多数应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值