shiro简介
1.shiro简介
shiro是目前现在用的主流的java安全框架之一,虽然没有spring security那么强大,但是shiro相当于前者,小巧,易上手。很适合一般中小型的项目。shiro能提供认证,授权,加密,拦截,权限等功能,其良好的API和接口设计方便应用的扩展,即适用于javaSE,javaEE。
2.shiro的基本概念
1.shiro有三个基础概念如下图。
1.subject: 主体,通常是用户,有时也可能是外部的服务,定时任务,即代表外部与系统交互的对象。subject只是一个门面,实际的交互还是委托给securityManager
2.SecurityManager: shiro的核心工作器,负责聚合内部的各个安全组件,如sessionManger,cacheManger,加密,realm。等
3.realm: 域,在shiro和你的应用扮演者一个桥梁的角色,shiro会从中获取用户,角色,权限等信息。获取的数据会存于subject实例中。
详细架构如下:
Authenticator: 身份认证,当用户登录时,会执行身份认证逻辑,认证的逻辑在realm中,可以配置一个或多个realm,设置不同的认证策略。
Authrizer: 授权,赋予用户某些权限,授权逻辑也需要和realm结合其来。
SessionManager: 会话管理,管理会话的声明周期,会话的存贮方式。
CacheManager : 缓存管理器,例如用户的角色,权限不会频繁改动,提供缓存,可以提高系统的性能。
Cryptography: 加密模块,可以对些敏感信息加解密