一、INI文件简介
INI配置文件是一种key/value的键值对配置,分为[main]、[users]、[roles]、[urls]四个部分,每一个部分中的key不可重复,#号代表注释,shiro.ini文件默认在/WEB-INF/ 或classpath下,shiro会自动查找,INI配置文件相当于一个静态数据库。
二、四个部分
1、[main]
这部分配置类对象,或设置属性等操作,内置了根对象,securityManager。
[main]
securityManager.属性=值
key=value
securityManager.对象属性=com.xxx.pojo.People #后面值是字符串
peo=com.xxx.pojo.People
securityManager.对象属性=$peo #出现$时才表示是引用对象
2、[users]
定义用户,密码及用户可以具有的角色.
[users]
用户名=密码,角色1,角色2 #角色部分可以省略.
zhangsan=zs
zhangsan=zs,role1,role2
3、[roles]
定义角色具有的权限
角色名=权限名,权限名
role1=user:insert,user:update
role2=insert,update
role3=user:*
4、[urls]
定义哪个控制器被哪个过滤器过滤
扫描二维码关注公众号,回复:
4796098 查看本文章
[urls]
控制器名称=过滤器名称
/login=authc
/**=anon
三、使用代码获取INI配置文件
public static void main(String[] args) {
// 创建工厂
Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini");
// 创建容器
SecurityManager manager = factory.getInstance();
SecurityUtils.setSecurityManager(manager);
// 获取当前的subject
Subject subject = SecurityUtils.getSubject();
。。。。。。
略
}