shiro学习

Apache Shiro 是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权,企业会话管理和加密。
Apache Shiro 的首要目标是易于使用和理解。安全有时候是很复杂的,甚至是痛苦的,但它没有必要这样。框架应
该尽可能掩盖复杂的地方,露出一个干净而直观的 API,来简化开发人员在使他们的应用程序安全上的努力。
以下是你可以用 Apache Shiro 所做的事情:

  • 验证用户来核实他们的身份
  • 对用户执行访问控制,如:
  • 判断用户是否被分配了一个确定的安全角色
  • 判断用户是否被允许做某事
  • 在任何环境下使用 Session API,即使没有 Web 或 EJB 容器。
  • 在身份验证,访问控制期间或在会话的生命周期,对事件作出反应。
  • 聚集一个或多个用户安全数据的数据源,并作为一个单一的复合用户“视图”。
  • 启用单点登录( SSO)功能。
  • 为没有关联到登录的用户启用"Remember Me"服务

    以及更多——全部集成到紧密结合的易于使用的 API 中。
    Shiro 视图在所有应用程序环境下实现这些目标——从最简单的命令行应用程序到最大的企业应用,不强制依赖其
    他第三方框架,容器,或应用服务器。当然,该项目的目标是尽可能地融入到这些环境,但它能够在任何环境下立即可用。

我们用的主要是认证功能。
在这里插入图片描述
Shiro 的架构有 3 个主要的概念: Subject, SecurityManager 和 Realms。

  • Subject:在我们的教程中已经提到, Subject 实质上是一个当前执行用户的特定的安全“视图”。鉴于"User"
    一词通常意味着一个人,而一个 Subject 可以是一个人,但它还可以代表第三方服务, daemon account, cron job,
    或其他类似的任何东西——基本上是当前正与软件进行交互的任何东西。
    所有 Subject 实例都被绑定到(且这是必须的)一个 SecurityManager 上。当你与一个 Subject 交互时,那些交
    互作用转化为与 SecurityManager 交互的特定 subject 的交互作用。
  • SecurityManager: SecurityManager 是 Shiro 架构的心脏,并作为一种“保护伞”对象来协调内部的安全组件
    共同构成一个对象图。然而,一旦 SecurityManager 和它的内置对象图已经配置给一个应用程序,那么它单独
    留下来,且应用程序开发人员几乎使用他们所有的时间来处理 Subject API。
    当你正与一个 Subject 进行交互时,实质上是幕后的 SecurityManager 处理所有繁重的 Subject 安全操作。这反映在上面的基本流程图。
  • Realms: Realms 担当 Shiro 和你的应用程序的安全数据之间的“桥梁”或“连接器”。当它实际上与安全相
    关的数据如用来执行身份验证(登录)及授权(访问控制)的用户帐户交互时, Shiro 从一个或多个为应用程
    序配置的 Realm 中寻找许多这样的东西。
    在这个意义上说, Realm 本质上是一个特定安全的 DAO:它封装了数据源的连接详细信息,使 Shiro 所需的相关的数据可用。当配置 Shiro 时,你必须指定至少一个 Realm 用来进行身份验证和/或授权。 SecurityManager可能配置多个 Realms,但至少有一个是必须的。
    Shiro 提供了立即可用的 Realms 来连接一些安全数据源(即目录),如 LDAP,关系数据库( JDBC),文本配置源,像 INI 及属性文件,以及更多。你可以插入你自己的 Realm 实现来代表自定义的数据源,如果默认地Realm 不符合你的需求。
    像其他内置组件一样, Shiro SecurityManager 控制 Realms 是如何被用来获取安全和身份数据来代表 Subject 实例的。
    下面是我做的一个实现认证功能的demo,有兴趣的可以下载下来跑跑:
	链接:https://pan.baidu.com/s/1I7mJSIG5COntPT5LFejjfQ 
	提取码:riem
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值