shiro登录认证和权限控制

一、实现类继承AuthorizingRealm

1、实现方法doGetAuthenticationInfo,将定义的用户实体类填充map,realmPrincipals;

2、实现方法doGetAuthorizationInfo,填充roles ,Permissions;

二,创建subject

提供SecurityUtils getSubject 方式创建,securityManager.createSubject,SubjectContext中进行确认map中已经存在securityManager,session以及PrincipalCollection,最后DefaultWebSubjectFactory创建webDelegatingSubject,并保存到session中。

三、登录验证

登录创建,DelegatingSubject login方法执行securityManager login,创建同第二步。

四、登出

DelegatingSubject logout方法执行securityManager logout,删除session中的subject,stop session。

五、关于ModularRealmAuthenticator

ModularRealmAuthenticator类在项目启动时setRealms(第一步中定义,不清楚为什么项目启动时注入),doSingleRealmAuthentication方法调用realm的doGetAuthorizationInfo

原文地址:https://www.cnblogs.com/cindy-zhu/p/6932490.html