什么是shiro?

shiro是一个apache组织下的安全框架,能够帮我们实现认证,授权,加密,会话管理,web集成,缓存等功能,但是具体的认证逻辑和搜权逻辑需要开发者自己实现。

shiro架构图

shiro - 图1

Subject:主体(当前用户)
principals:身份(一般是用户名或者用户id)
credentials:证明(一般是密码)
SecurityManager:安全管理器,门面类
Authenticator:认证器
Authorizer:授权器
Relam:提供授权信息和认证信息的类,需要开发实现
SessionManager:会话管理器
SessionDao:存储session的数据
CacheManager:缓存管理器
Cryptography:密码模块

Shiro过滤器

anon,匿名登录
authc,认证登录才能使用
roles,角色
perms,权限

Shiro注解

RequiresRoles,需要用户有某种角色

RequiresPermissions,需要用户有某种权限

Shiro认证流程

Shiro鉴权流程

Shiro

relam

authenticateRelam

authorizingRealm

使用了模板设计模式