shiro使用自定义Realm

JAVA ginotang 755℃ 0评论

Realm简介

Realm的作用是用来验证用户提供的登录信息是否正确。如果正确,则返回一个AuthenticationInfo对象,该对象代表一个已经通过验证的用户对象。shiro中有一个对象的名称和AuthenticationInfo相似,那就是AuthenticationToken。两者的区别是:AuthenticationInfo是已经通过验证的对象,而AuthenticationToken是还没有通过验证的对象。通常,Realm中提供验证的后端数据来自数据库,也可以是其他形式,例如xml数据,或者json数据。

实现自定义Realm

有两种方式可以实现自定义Realm,第一种是实现Realm接口,第二种是继承AuthorizingRealm。不同的是第一种方式只能验证用户信息,而第二种方式还可以授予用户权限。

实现Realm

创建自定义Realm只需要实现Realm接口即可,该接口提供了三个必须实现的方法。分别是getName()supports()getAuthenticationInfo(),账户验证的逻辑在getAuthenticationInfo()方法中实现。

继承AuthorizingRealm

AuthorizingRealm类需要实现的方法有两个,分别是:

  1. doGetAuthenticationInfo
  2. doGetAuthorizationInfo

两个方法的作用分别是验证用户信息和获取用户权限。

配置Ini文件

使用自定义Realm的时候,配置文件的设置顺序应该注意,[users]的位置必须在自定义Realm的后面,如果[users]放在自定义Realm的前面,这个自定义的Realm就不会生效。

测试代码

 

转载请注明:Pure nonsense » shiro使用自定义Realm

喜欢 (0)
0 0 投票数
文章评分
订阅评论
提醒
guest
0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x
()
x