初学shiro

一、shiro结构

1、主要功能

Authentication:身份认证

Authorization:授权

Session Manager:会话管理

Cryptography:加密

2、支持特性

Web Support:Web支持

Caching:缓存

Concurrency:并发编程

Testing:测试支持

Run As:代理访问

Remember Me:记住我

3、外部结构

Subject:用户主体

SecurityManager:安全管理器

Realm:数据源

4、内部结构

Subject:用户主体

SecurityManager:安全管理器

Authenticator:认证器

Authrizer:授权器

Realm:数据源

SessionManager:会话管理

SessionDao:会话管理储存

CacheManager:缓存管理器

Cryptography:密码模块

二、调用

1、登录

创建SecurityManager工厂

生成securityManager

设置给SecurityUtils

从SecurityUtils得到subject

创建token

subject.login()

isAuthenticated()

2、认证器

Realm:可以配置多realm

Authenticator:认证器

AuthenticationStrategy:认证器策略,在多realm时返回不同的认证结果

三、授权

1、授权

Subject:主体

Resource:资源

Permission:权限

Role:角色

2、授权方式

编程式

注解式

标签式

3、基于角色

hasRole:是否拥有权限

hasAllRoles:是否拥有全部权限

hasRoles:返回拥有的权限列表

4、基于权限

isPermitted:判断权限

isPermittedAll:判断全部权限

checkPermission:失败抛异常

checkPermissions:失败抛异常

5、授权流程

Authorizer

PermissionResolver

RolePermissionResolver

doGetAuthenticationInfo:获取身份验证信息

doGetAuthorizationInfo:根据用户身份获取授权信息

原文地址:https://www.cnblogs.com/ctxsdhy/p/9321555.html