Shiro安全框架

2019-08-20  本文已影响0人  JumpBorderLine

1、Shiro概述

Shiro是一个安全框架,它将软件系统的安全认证相关功能抽取出来,实现用户身份认证,权限授权、加密、会话管理功能,组成一个通用的安全认证框架,使用shiro可以非常快速的完成认证、授权等功能的开发,降低系统成本。

用户资源访问流程

2、Shiro架构

2.1概要架构

2.2 详细架构

核心对象:认证管理对象、授权管理对象、会话管理对象、缓存管理对象、加密管理对象、realm管理对象(领域对象:负责处理认证和授权领域的数据访问问题)。

subject:与软件交互的一个特定实体(用户、第三方服务);

SecurityManager(安全管理器):Shiro的核心,用来协调管理组件工作;

Authenticator(认证管理器):负责执行认证操作;

Authorizer(授权管理器):负责执授权检测;

SessionManager(会话管理):负责创建并管理用户Session生命周期,提供一个强有力的Session体验;

SessionDAO:代表SessionManager执行 Session 持久(CRUD)动作,它允许任何存储的数据挂接到 session 管理基础上;

CacheManager(缓存管理器):提供创建缓存实例和管理缓存生命周期的功能;

Cryptography(加密管理器):提供了加密方式的设计及管理;

Realms(领域对象):Shrio和应用程序安全数据之间的桥梁。

3、shiro认证过程

身份认证:判定用户是否是系统的合法用户。

1)系统调用subject的login方法将用户登录信息封装在token里面,然后把token交给SecurityManager;

2)SecurityManager将token认证操作委托给认证器对象Authenticator;

3)认证器对象Authenticator将用户的token信息交给realm;

4)Realm访问数据库获取用户信息然后对信息进行封装并返回;

5)Authenticator对realm返回的信息进行身份认证。

使用Shiro时可以在Service层借助realm实现,让realm继承AuthorizngRealm然后重写相关业务方法实现。

4、shiro缓存配置

当进行授权操作时每次都会从数据库查询信息,为了提高授权性能,可以将用户权限信息取出来进行缓存,下次授权时从缓存里取数据即可。实现步骤如下:

5、shiro记住我

记住我功能:用户登录成功以后,若关闭浏览器,下次再访问系统资源时,无需再执行登录操作。

前端页面点击Remeber me——值提交到控制层——服务端设置setRemeberMe()方法为true——Shrio的XML文件中添加cookie配置。

6、shiro会话时长

使用shiro框架实现认证操作,可将登录信息写入到会话对象中,默认时长30分钟,若要修改,可更改配置文件。

上一篇下一篇

猜你喜欢

热点阅读