shiro 学习之它是干嘛的

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

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

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

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

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

  • 验证用户验证他们的身份

  • 为用户执行访问控制,如:

    • 确定用户是否被分配了一定的安全角色
    • 确定用户是否被允许做某事
  • 在任何环境中使用Session API,即使没有Web或EJB容器。

  • 在身份验证,访问控制或会话生命周期内对事件作出反应。

  • 聚合1个或更多的用户安全数据数据源,并将其全部显示为单个复合用户视图。

  • 启用单点登录(SSO)功能

  • 为用户关联启用“记住我”服务,无需登录

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

shiro 功能(引用官方)

image.png

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

核心架构

image.png
  • Subject:与系统交互的实体,可以使用户,也可以是其他子系统。
  • SecurityManager:是 shiro 的核心,包裹住所有服务,相当于大容器,协调这些服务一起工作。
  • Authenticator :用户认证。
    • Authentication Strategy :认证策略,如果配置多个 realm,用这个管理。
  • Authorizer:权限认证。
  • SessionManager:回话管理。
    • SessionDAO :会话管理的 dao,负责操作。
  • CacheManager:缓存管理。
  • Cryptography :密码,各种加密操作。
  • Realms :Shiro与应用程序的安全数据之间的“桥”或“连接器”,这里是负责验证密码和权限的入口。

工作流程

image.png

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容

  • 文章转载自:http://blog.csdn.net/w1196726224/article/details/53...
    wangzaiplus阅读 3,387评论 0 3
  • 1.简介 Apache Shiro是Java的一个安全框架。功能强大,使用简单的Java安全框架,它为开发人员提供...
    H_Man阅读 3,153评论 4 48
  • Shiro(代码) 1.1 简介 Apache Shiro是Java的一个安全框架。目前,使用Apache Shi...
    ZZS_简阅读 484评论 0 0
  • 前言 Spring boot 是什么,网上的很多介绍,这里博客就不多介绍了。如果不明白Spring boot是什么...
    xuezhijian阅读 17,894评论 13 39
  • 进度条:2-160 今天读的国风之周南第二首 《葛覃》 《葛覃》葛之覃兮,施于中谷,维叶萋萋。黄鸟于飞,集于灌木,...
    刘小麦同学阅读 1,416评论 0 1