【Shiro】二、Apache Shiro配置

1、配置

使用配置获得SecurityManager,SecurityManager是核心,配置好并获取到SecurityManager,Shiro就算正式运行起来了。

两种方式:通过ini文件;通过ini实例

ini文件的格式

段:一个ini文件分为4段内容,段用[]表示;每段用键值对来进行配置

[main]:SecurityManager相关对象及其属性

[users]:静态定义的用户信息

[roles]:静态定义的角色信息

[urls]:Web应用中基于URL的安全控制

[main]
#定义对象
sha256Matcher = org.apache.shiro.authc.credential.Sha256CredentialsMatcher

#定义对象及其属性
myRealm = com.company.security.shiro.DatabaseRealm
myRealm.connectionTimeout = 30000
myRealm.username = jsmith
myRealm.password = secret
#引用对象
myRealm.credentialsMatcher = $sha256Matcher

#定义嵌套属性
securityManager.sessionManager.globalSessionTimeout = 1800000

#集合属性
securityManager.sessionManager.sessionListeners = $listen1,$listen2
anObject = some.class.with.a.Map.property
anObject.mapProperty = key1:$obj1,key2:$obj2

#重写覆盖
myRealm = com.company.security.MyRealm
myRealm = com.company.security.DatabaseRealm

#自定义SecurityManager
securityManager = com....MyCustomerSecurityManager

[users]
#格式:用户名 = 密码,角色1,角色2,角色3...
admin = secret
louis = 520,admin
yang = 1234,customer,controller

[roles]
#格式:角色名 = 权限表达式1,权限表达式2.....
#权限表达式的格式:类型:操作:id,使用*通配符
#admin角色拥有所有权限
admin = *
#louis角色可以做sale类型的任何事
louis = sale:*
#yang角色可以做sale类型下confirm事件,且只能操作0001id
yang = sale:confirm:0001

[urls]
后面再讲

一般使用ini的方式配置,除非运行环境内存小,有限制,才用编程模式

2、术语

了解一下Shiro中用到的一些英文术语

Authentication:认证

Authorization:授权

Credential:用户凭证,如密码、token

Principal:用户标识,如用户名

Subject:用户

Role:角色

Permission:功能权限

Session:会话

Realm:安全DAO

Cryptography:密码术

  Cipher:加密算法

  Hash:散列算法

猜你喜欢

转载自www.cnblogs.com/LiveYourLife/p/8677559.html