一.认证和授权的概念
认证(authentication):show it,you are you;
授权(authoriziation):through it,you can do sth;
二.shiro中的认证与授权
AuthenticatingRealm:shiro中的用于进行认证的领域,实现doGetAuthentcationInfo方法实现用户登录时的认证逻辑;
AuthorizingRealm:shiro中用于授权的领域,实现doGetAuthrozitionInfo方法实现用户的授权逻辑,AuthorizingRealm继承了AuthenticatingRealm,所以在实际使用中主要用到的就是这个AuthenticatingRealm类;
AuthenticatingRealm、AuthorizingRealm这两个类都是shiro中提供了一些线程的realm接口
在与spring整合项目中,shiro的SecurityManager会自动调用这两个方法,从而实现认证和授权,可以结合shiro的CacheManager将认证和授权信息保存在缓存中,这样可以提高系统的处理效率。
三.Subject
subject.login会将登录验证处理委托给SecurityManager,SecurityManager会找到注入进来的认证realm接口的实现类,然后进行认证逻辑处理,并返回一个认证结果