1、Authenticator 简介
1.1层次结构图
1.2作用
职责是验证用户帐号,是ShiroAPI中身份验证核心的入口点;接口中声明的authenticate方法就是用来实现认证逻辑的。
1.3源代码
public interface Authenticator {
AuthenticationInfo authenticate(AuthenticationToken var1) throws AuthenticationException;
}
1.4 authenticate
- 该方法是实现认证逻辑的。
- 如果验证成功,将返回AuthenticationInfo验证信息;此信息中包含了身份及凭证;如果验证失败将抛出相应的 AuthenticationException 实现
2.ModularRealmAuthenticator
2.1关系图
2.2作用
认证策略接口,自定义认证策略时只需要继承该类即可(PS:一般使用默认的三种策略即可)
2.3 三种策略
- FirstSuccessfulStrategy:只要有一个Realm验证成功即可,只返回第一个Realm身份验证 成功的认证信息,其他的忽略;
- AtLeastOneSuccessfulStrategy:只要有一个Realm验证成功即可,和FirstSuccessfulStrategy 不同,返回所有 Realm 身份验证成功的认证信息;
- AllSuccessfulStrategy:所有Realm验证成功才算成功,且返回所有Realm身份验证成功的 认证信息,如果有一个失败就失败了。
注意:ModularRealmAuthenticator 默认使用 AtLeastOneSuccessfulStrategy 策略。