shiro 学习记录

shiro 学习之它是干嘛的

2017-09-03  本文已影响879人  我是你的小眼睛儿

shiro 的确是个很简单的安全框架,是个很好的轮子,重复造轮子是可耻的,所以就好好学习如何使用和扩展轮子,发挥它的价值。

shiro官网地址:http://shiro.apache.org

shiro 的是干嘛的(引用官网)

Apache Shiro是一个强大而灵活的开源安全框架,可以干净地处理身份验证,授权,企业会话管理和加密。

以下是Apache Shiro可以做的一些事情:

Shiro尝试为所有应用程序环境(从最简单的命令行应用程序到最大的企业应用程序)实现这些目标,而不强制依赖于其他第三方框架,容器或应用程序服务器。
当然,该项目旨在尽可能地融入这些环境,但它可以在任何环境中开箱即用。

shiro 功能(引用官方)

image.png

Shiro针对Shiro开发团队所称的“应用程序安全的四个基石” - 认证,授权,会话管理和加密:
认证(Authentication):登录,证明用户是谁的行为。
授权(Authorization):访问控制的过程,即确定“谁可以访问”什么“。
会话管理(Session Management):即使在非Web或EJB应用程序中也可以管理用户特定的会话。
密码学(Cryptography):使用加密算法保持数据安全性,同时易于使用。

核心架构

image.png

工作流程

image.png

大致的工作流程是这样的:

  1. 调用登录方法
  2. 通过SecurityManager进入 realm 中进行判断权限和登录认证
  3. 在 realm 中调用dao 层查询数据库
  4. 获取用户数据
  5. realm 包装原始数据传入SecurityManager。通过SecurityManager调用认证方法,根据login 传入的 token 和 realm 返回的用户真实数据进行比对是否正确。如果不正确抛出各种异常,比如未知用户异常,密码错误,登录次数过多异常等。
  6. 根据返回的异常,各种 try..catch..,没有异常返回,则表示登录成功,反之返回前端 catch 结果。

自学笔记,如果错误,请评论指正

上一篇下一篇

猜你喜欢

热点阅读