Shiro中相关类的配置关系
断断续续地看Shiro的文档也有大概几个月的时间,明白了一些相关的概念,但始终有云雾缭绕的感觉。大概翻看了一圈网上的教程,同时也查了Shiro的JavaDoc,对于某些类的配置关系有了一些感觉,花点时间记录在此,也方便其他使用者。
首先给出一个简单的配置层次关系图:
SecurityManager
- Realm
- CredentialMatcher
(PasswordMatcher)
- DefaultPasswordService
- HashService
以上这个层次关系图实际上想说明的是:上一级类中需要配置的字段大致上如何的一个关系,并不是一定要照上图中的类来使用,只是方便说明。
SecurityManger应当是Shiro配置的一个大框架了,多数接口调用也是通过他来进行的。
Realm在Shiro的官方文档中的解释是相当于DAO,即是获得用户数据的层级。如果你要对用户的权限进行控制,则实现org.apaceh.shiro.realm.AuthorizingRealm是比较方便的,仅需要实现doGetAuthenticationInfo和doGetAuthorizationInfo两个方法即可。
CredentialMatcher用于进行凭证的配置,这个凭证不仅仅是指密码,因为Shiro还支持其他的凭证介质。一般情况下,网站使用的是用户名及密码进行验证用户,故此处用密码来进行解说。
CredentialMatcher内部会调用相关的passwordService会委托相应的hashService对密码进行hash。
此处仅对这个关系图进行简略的说明,其他相关类的说明将在其他文章中进行详细说明。
浙公网安备 33010602011771号