美文网首页
Shiro安全框架

Shiro安全框架

作者: JumpBorderLine | 来源:发表于2019-08-20 18:19 被阅读0次

    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分钟,若要修改,可更改配置文件。

    相关文章

      网友评论

          本文标题:Shiro安全框架

          本文链接:https://www.haomeiwen.com/subject/zffmsctx.html