【Shiro】
五、第一个Shiro演示
Shiro是不依赖于容器的,所以建立一个普通的Maven项目就可以。
1、添加依赖
<dependencies>
2、新建配置文件
在resources下新建shiro.ini,文件名称任意,扩展名必须是ini。
3、新建测试类
新建com.bjsxt.ShiroRun。
public
六、授权
1、判断角色
1.1 修改配置文件
直接在密码后面添加用户包含的角色名即可。
1.2 添加代码
hasRole()通过返回值判断用户是否具有指定角色。
2、判断权限
2.1 修改配置文件
2.2 添加测试代码
通过是否出现AuthenticationException异常控制是否有指定权限。
七、加密及凭证匹配器
在实际开发中数据库中一些敏感信息经常会被加密存储。如:用户密码等。
Shiro框架内嵌了很多加密算法。如MD5等。使用Shiro框架时可以很方便的实现加密功能。
String
八、自定义Realm
ShiroRun 代码不需要做任何变化。
1、自定义Realm类
在项目中新建com.bjsxt.realm.MyRealm
public
2、修改配置文件
在配置文件中添加下面内容
3、测试结果
在ShiroRun中修改用户名和密码,当用户名和密码为admin、pwd时可以正常登录。
此时无论shiro.ini是否配置了[users],都按照Realm中配置的逻辑进行比较用户名和密码。
九、凭证匹配器
在实际应用中数据库密码都是加密的。Shiro内置了凭证匹配器,通过简单配置就可以实现明文数据和数据库中加密数据匹配的效果。
1、修改自定义Realm
AuthenticationInfo 的构造方法由三个参数变成四个参数的。新增第三个参数表示加盐。
一般都是拿用户数据的id作为盐。
2、修改配置文件
在配置文件中配置凭证匹配器配置。