shiro的SecurityManager源码解析
1、Authenticator接口:
认证的接口,包含一个认证的方法,接受AuthenticationToken参数,返回AuthenticationInfo
2、Authorizer接口:
授权的接口,判断是否具有权限,角色等操作。
3、SessionManager接口:
session管理的接口。
4、CachingSecurityManager 抽象类:
只是实现了Destroyable、CacheManagerAware、EventBusAware的接口功能。以上三个接口未在此实现。
5、RealmSecurityManager 抽象类:
实现了Realm对象的设置,一次性设置一个或者多个Realm,设置完成后并将其加入CacheManager和EventBus中,以上三个接口未在此实现。
6、AuthenticatingSecurityManager抽象类:
认证安全管理类,此抽象类型实现了Authenticator接口,但将认证功能委派给了Authenticator接口的实现类ModularRealmAuthenticator。 可以通过设置自定义的ModularRealmAuthenticator来使用自定义的认证规则。
7、ModularRealmAuthenticator:
具体的认证执行者,包含两个属性,一是realms,认证使用的域。二是authenticationStrategy认证的策略,默认为AtLeastOneSuccessfulStrategy。
8、AuthorizingSecurityManager 抽象类:
与认证类相同,实现了授权的接口,但将授权的功能委派给了Authorizer接口实现类ModularRealmAuthorizer。
9、SessionsSecurityManager抽象类:
设置了默认的sessionManager为DefaultSessionManager,但未在此类中实现SessionManager接口
10、DefaultSecurityManager:
默认的实现类,SessionManager接口在此得以实现。主要对Subject的管理,session的管理,remenberme的操作。
11、DefaultWebSecurityManager:
基于web的默认SecurityManager。