什么是 Shiro

官网:http://shiro.apache.org/
shiro是一款主流的 Java 安全框架,不依赖任何容器,可以运行在 Java SE和 Java EE 项目中,它的主要作用是对访问系统的用户进行身份认证、授权、会话管理、加密等操作。
Shiro 就是用来解决安全管理的系统化框架。

总体架构

核心功能

  • 认证Authentication
  • 授权Authorization
  • 会话管理
  • 加密
  • 缓存

用户信息、角色、权限等缓存到如redis等缓存中

  • Web集成支持
  • 测试支持
  • 记住我

核心组件

1、UsernamePasswordToken,Shiro 用来封装用户登录信息,使用用户的登录信息来创建令牌 Token。
2、SecurityManager,Shiro 的核心部分,负责安全认证和授权。
3、Suject,Shiro 的一个抽象概念,包含了用户信息。
4、Realm,开发者自定义的模块,根据项目的需求,验证和授权的逻辑全部写在 Realm 中。
5、AuthenticationInfo,用户的角色信息集合,认证时使用。
6、AuthorzationInfo,角色的权限信息集合,授权时使用。
7、DefaultWebSecurityManager,安全管理器,开发者自定义的Realm 需要注入到 DefaultWebSecurityManager 进行管理才能生效。
8、ShiroFilterFactoryBean,过滤器工厂,Shiro 的基本运行机制是开发者定制规则,Shiro 去执行,具体的执行操作就是由ShiroFilterFactoryBean 创建的一个个 Filter 对象来完成。

认证过程

1.收集身份和令牌(用户名/密码)

//Example using most common scenario of username/password pair:
UsernamePasswordToken token = new UsernamePasswordToken(username, password);//"Remember Me" built-in:
token.setRememberMe(true);

2.提交身份和令牌

Subject currentUser = SecurityUtils.getSubject();currentUser.login(token);

3.处理认证成功和失败

try {currentUser.login(token);
} catch ( UnknownAccountException uae ) { ...
} catch ( IncorrectCredentialsException ice ) { ...
} catch ( LockedAccountException lae ) { ...
} catch ( ExcessiveAttemptsException eae ) { ...
} ... catch your own ...
} catch ( AuthenticationException ae ) {//unexpected error?
}//No problems, continue on as expected...

更详细的认证请参考

http://shiro.apache.org/authentication.html#authentication-sequence

Shiro实战1-介绍相关推荐

  1. Shiro 实战教程

    Shiro 实战教程 1.权限的管理 1.1 什么是权限管理 ​ 基本上涉及到用户参与的系统都要进行权限管理,权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制 ...

  2. XCP实战系列介绍04-CANape工程配置超详细介绍

    本文框架 1.概述 2.新建CANape工程 3. Device配置 3.1 新建Device 3.2 输入Device名称 3.3 配置Network 3.4 选择A2l文件 3.5 确认报文ID与 ...

  3. XCP实战系列介绍06-CANape标定及标定后hex生成操作指导

    本文框架 1.概述 2. CANape工程建立 3. XCP标定及后处理介绍 3.1 CANape标定 3.2 标定数据保存 3.3保存标定结果到原hex 3.4 将标定结果copy到hex中 3.5 ...

  4. XCP实战系列介绍10-基于CANoe实现XCP测量功能详细介绍

    本文框架 1.概述 2. 使用指导 2.1 使用前提 2.2 获取变量地址 2.3 建立XCP通讯 2.4 发送需观测变量的地址及数据长度 2.5 读取应答数据 3. 操作流程汇总 1.概述 在前面一 ...

  5. XCP实战系列介绍03-英飞凌TC3xx芯片Overlay概述及开发过程介绍

    本文框架 1.概述 2. Overlay相关寄存器介绍 2.1 全局寄存器 2.2 单独Block相关寄存器 3. 基于TC3xx芯片Overlay的开发流程 3.1 开发流程及操作汇总 3.2 开发 ...

  6. shiro实战系列(一)之入门实战

    一.什么是shiro? Apache Shiro 是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权,企业会话管理和加密.   Apache Shiro 的首要目标是易于使用和理解.安全有 ...

  7. .NET Core IdentityServer4实战-开篇介绍与规划

    一.开篇寄语 由于假期的无聊,我决定了一个非常有挑战性的活动,也就是在年假给大家带来一个基于OAuth 2.0的身份授权框架,它就是 IdentityServer4 ,如果没有意外的话,一定可以顺利的 ...

  8. shiro简单入门介绍

    shiro是apache的一个java安全框架 可以完成认证,授权,加密,会话管理,基于web继承,缓存等 功能简介: 从外部来看: shiro架构  Subject:主体,代表了当前"用户 ...

  9. Session(数据)共享的前后端分离Shiro实战

    1,前言 本文期望描述如何使用Shiro构建基本的安全登录和权限验证.本文实战场景有如下特殊需求:1,在集群和分布式环境实现session共享:2,前端只使用HTML/CSS/JS.因此无法直接使用S ...

  10. Shiro 实战教程(全)

    目录 1.权限的管理 1.1 什么是权限管理 1.2 什么是身份认证 1.3 什么是授权 2.什么是shiro 3.shiro的核心架构 3.1 Subject 3.2 SecurityManager ...

最新文章

  1. 005_Buzz播放音频
  2. android 安装步骤
  3. Eclipse配置工程自动执行ant实现热部署
  4. Java代理初学者指南
  5. 实现DIV居中布局三种途径(转)
  6. orchard文档之-搜索和索引
  7. Python制作代码雨
  8. tcpdf不支持html,TCPDF:无法从HTML输入生成PDF文件
  9. 【手把手教你】使用QuantLib进行债券估值和期权定价分析
  10. 【jQuery】货币格式化
  11. 公开课分享《如何快速有效地编写一份商业计划书》
  12. APP发布的三个证书作用
  13. macOS 和 Linux 有什么区别?
  14. 自适应模糊PID控制算法
  15. MOSFET的SOA或者ASO是什么?
  16. 云南工程职业学院计算机网址,云南工程职业学院欢迎您(2020)
  17. 周五IT程序员科技段子
  18. Spark jar not loaded. Offending class: javax/servlet/Servlet.class
  19. Python基础-Python基础使用
  20. 双重差分法(DID)入门必看

热门文章

  1. php 模拟登录qq空间,PHP模拟登录QQ空间的例子
  2. 深信服上网行为管理 准入规则库介绍
  3. linux 汇编 读取软盘,学习x86汇编语言7 使用INT13读取软盘数据
  4. 【RPA自动化|提升办公效率|懒人必备】微信自动点赞
  5. C3P0,Proxool等连接池的断开自动重联功能
  6. 元旦给计算机老师的贺卡,元旦给老师的祝福语贺卡
  7. office 文档解析
  8. 智能网联汽车封闭测试场建设内容简介​
  9. 《途客圈创业记:不疯魔,不成活》一一2.6 组建团队
  10. PHP面向对象——GD库实现图片水印和缩略图