Apache shiro学习笔记+ spring整合shiro (一)

2023-11-02


Apache Shiro官网:http://shiro.apache.org/

概念:

shiro是一个强大灵活的开源安全框架,可以干净利落的处理认证、授权、企业会话管理和加密。

shiro的首要目标是简单和易于理解。安全有时候是非常复杂令人头疼的问题,shiro隐藏了复杂

的细节,暴露了简介直观的API来简化开发者使他们的应用程序更安全的努力。

 

功能:进行用户认证、执行访问控制、单点登录、Remember Me服务

 

安全的一些概念:身份认证、授权、会话管理、加密被认为是构成应用安全的基础要素。

身份认证,就是验证用户身份,典型的“登录”过程就是身份认证的过程。

授权:也就是访问控制(ac),也即某用户可以可以使用应用的哪些功能?

会议管理:管理用户特定的会话,即使在非Web或EJB应用。

加密:保持数据的安全使用的加密算法,同时仍然易于使用。

对于Session,在WEB应用中它基于HttpSession,而一般应用中默认使用企业会话管理。shiro的Session

用起来和HttpSession差不多,并且使用它不需要Http环境。

 

在最高的层次上讲,shiro主要有三个主要的概念,它们分别是Subject、SecurityManager和Realms。

 

1、shiro使用Subject这一概念来描述当前用户,‘User’这个词通常隐含的指一个人,但是Subject可以是一个

人也可以代表第三方服务,守护账户,定时作业,或者其他类似的与软件交互的事物。

 

2、所有Subject实例都与一个SecurityManager绑定,当你和一个Subject交互时,所有交互都会通过SecurityManager

转换为特定Subject的交互。

SecurityManager是shiro架构的核心,它扮演‘保护伞’对象的角色,与其他内部安全组件一起构成对象图的核心。 

SecurityManager及其内贸部对象图一旦被应用配置,它基本上就被放在一边不再被程序员使用了,

开发人员基本上总是在与Subject的相关API打交道。它在幕后支持Subject的安全操作。

 

3、Realms在shiro与你的应用程序的安全数据之间充当着桥梁或者说是连接器的作用。

从这种意义上讲,Reaml就是一个特定的安全DAO,它为shiro提供所需的数据。

在配置shiro时,你必须为认证、授权指定至少一个可用的Realm。

 

shiro提供了现成的Realm连接到LDAP、关系数据库(JDBC)、ini和properties文件等。

用户可以使用自己的Realm



Shiro 是一个用 Java 语言实现的框架,通过一个简单易用的 API 提供身份验证和授权。使用 Shiro,您就能够为您的应用程序提供安全性而又无需从头编写所有代码。


Shiro 的 
Session 对象允许无需 HttpSession 即可使用一个用户会话。通过使用一个通用的 Session 对象,即便该代码没有在一个 Web 应用程序中运行,仍可以使用相同的代码。没有对应用服务器或 Web 应用服务器会话管理的依赖,您甚至可以在命令行环境中使用 Shiro。换言之,使用 Shiro 的 API 编写的代码让您可以构建连接到 LDAP 服务器的命令行应用程序并且与 web 应用程序内用来访问 LDAP 服务器的代码相同。由于 Shiro 提供具有诸多不同数据源的身份验证,以及 Enterprise Session Management,所以是实现单点登录(SSO)的理想之选 — 大型企业内的一个理想特性,因为在大型企业内,用户需要在一天内经常登录到并使用不同系统。这些数据源包括 JDBC、LDAP、 Kerberos 和 Microsoft® Active Directory® Directory Services (AD DS)。

Shiro 是预构建的二进制发行版。您可以下载 Shiro JAR 文件或将各项放入到 Apache Maven 或 Apache Ivy 来自动安装这些文件。本例使用 Ivy 下载 Shiro JAR 文件以及其他所需要的库,脚本很简单,如清单 1 所示。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apache shiro学习笔记+ spring整合shiro (一) 的相关文章

  • matlab折线图折点加数值

    1 只显示y轴数值 x 0 8 acc 100 100 100 100 100 99 9 97 45 73 95 39 59 plot x acc LineWidth 1 5 xlabel 噪声等级 FontSize 16 ylabel 聚
  • cmd输出彩色字体(win10 cmd控制台支持ANSI转义序列)

    这是啥 ANSI转义序列是一种带内信号的转义序列标准 用于控制视频文本终端上的光标位置 颜色和其他选项 在文本中嵌入确定的字节序列 大部分以ESC转义字符和 字符开始 终端会把这些字节序列解释为相应的指令 而不是普通的字符编码 ANSI序列
  • CSDN-markdown编辑器使用详细

    这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题 有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一个表格 设定内容居中 居左 居右 Sma
  • 网易2018校招编程题集合4

    小易有一个长度为n的整数序列 a 1 a n 然后考虑在一个空序列b上进行n次以下操作 1 将a i放入b序列的末尾 2 逆置b序列 小易需要你计算输出操作n次之后的b序列
  • 登录Windows自动映射磁盘

    最近项目客户要求做一个功能 内容是希望希望用户在登录windows的时候 根据用户自己负责的项目来自动创建网络映射驱动器 用户需要映射磁盘的信息都存在数据库中 经过调查研究 打算使用powershell实现 实现方式大体如下 1 先创建po
  • 一次性解决打日志时的4个重复低效场景(日志脱敏、日期格式化、json序列化)...

    关注公众号 1024个为什么 及时接收最新推送文章 本篇文章是对之前的两篇文章的一个总结 补充 日志里打出来的都是时间戳 教你一行代码搞定它https blog csdn net JiuQianWan article details 127
  • apt-get install

    apt get可以用于运作deb包 例如在Ubuntu系统上对某个软件的管理 安装 apt get install
  • 酒桌上的你是什么样

    好久没写博客了 人是越待着越懒 最近刚刚培养起自己学习的兴趣 上网看看 看到一个关于酒桌的学问 拿来借鉴下 以后用得着啊 第一原则 如果自己不能喝 丫就别开始第一口 自己端着饭碗夹了菜一边吃着去 第二原则 如果确信自己要喝 就别装墨迹 接下
  • uniApp 使用Vuex 出现 Cannot read properties of undefined (reading ‘commit‘)情况

    最近下手uni app 尝鲜 想到vue全家桶的使用 vuex是必不可少的 使用实例使用完按照文档方法使用 发现了一个问题 在调用vue自定义的commit函数是会报错 Cannot read properties of undefined
  • 【计算机视觉

    文章目录 一 前言 二 可以获得什么 三 入门实践 3 1 帮助文档 3 2 安装 3 3 模型的组成 3 4 BERT模型的使用 3 4 1 导入模型 3 4 2 使用模型 3 4 2 1 tokenizer 3 5 model 3 6
  • MySQL读取Binlog日志常见的3种错误

    1 mysqlbinlog ERROR unknown variable default character set utf8mb4 当我们在my cnf中添加default character set utf8mb4选项 那么在mysql
  • Unity 开发总结之VLC Player for Unity插件的使用

    Unity项目开发过程中 视频播放这块是避免不了的重要组成部分 网上也有很多资料做了详细的介绍 但基本都是基于Unity的MovieTexture对象 即要求视频源必须是导入的本地视频文件 如果视频源变为在线视频流如RTSP之类的形式呢 显
  • 全球金融科技百强,神州信息连续两年位列中国上榜企业第一名!

    美国时间10月13日 IDC全球Financial Insights发布2020年全球金融科技大奖 FinTech Rankings百强榜单 神州信息作为金融科技全产业链综合服务商 位列榜单第39位 是百强榜单中排名第一的中国企业 这也是神
  • 关于calloc函数,malloc函数的理解(概念+例题讲解)

    文章目录 引入 calloc函数和malloc函数 两者区别 我的问题 问题解决 总结 引入 我们在牛客网或者 leetcode刷题时经常遇到让你写核心代码的做题模式 作为一个刚开始刷题不久的新人 我在没有学习calloc函数时 遇到了需要
  • 吴恩达 04.卷积神经网络 第一周作业Convolutional Neural Networks: Application

    Convolutional Neural Networks Application Welcome to Course 4 s second assignment In this notebook you will Implement he
  • STM32串口DMA接收数据错位——暴力解决方法

    背景 两片STM32通过串口通信 为了减小CPU负担 采用DMA进行通信 发送端为STM32F103C8T6 接收端为STM32F407VET6 在调试的过程中发现 一直出现数据错位的问题 接收端尝试了串口空闲中断和串口DMA传输完成中断
  • cvday14--模型训练过程

    模型训练的过程其实就是在求 参数 的过程 我们先假定某类 模型 比如决策树模型 然后用 训练集 来训练 学习到对应的最优的 参数 但是问题在于 我们没有办法保证我们假设的那个 模型 是最优的 我们极有可能假设错误对吧 那怎么办呢 有一个简单
  • 【学习排序】 Learning to Rank中Pointwise关于PRank算法源码实现

    最近终于忙完了Learning to Rank的作业 同时也学到了很多东西 我准备写几篇相关的文章简单讲述自己对它的理解和认识 第一篇准备讲述的就是Learning to Rank中Pointwise的认识及PRank算法的实现 主要从以下
  • STM32以太网通讯设计方案

    STM32 网口设计方案 有效信息整理 网口芯片选型 W5100 w5500 CH9121 DM9000 DM9000A ENC28J60 LAN91C111 RTL8019 LAN7820 韩国WIZnet公司生产的W5300芯片 很多s

随机推荐

  • Linux根据进程名查看进程id,以及根据进程id查看占用的端口,根据端口号查看占用的进程

    先根据进程名查看进程id ps aux grep 进程名 或者ps ef grep 进程名 y ubuntu ps aux grep bitcoind y 2708 101 12 1 1611172 488580 Ssl Aug22 32
  • Glide使用详解(一)

    该文章基于Glide v3 7 0版本 Glide v4版本详解请移步 http blog csdn net shangmingchao article details 78219558 一 下载 在build gradle中添加依赖 co
  • 【基础知识】ubuntu学习笔记

    参考 The Linux Command Line 中文版 ctrl alt T打开命令行终端 Ctrl Shift C 复制 Ctrl Shift V 粘贴 Ctrl Shift W 关闭标签页 ctrl shift T 在当前终端打开一
  • SpringCloudConfig 一直报错 Cannot clone or checkout repository

    配置都没有问题 git也验证了 都可以发现问题 用户名密码也正确就是 报错 无法从git中检出 也想过过是https的问题 但是github com 用的授信的证书 但是最终还是https的原因 找了好久终于通过设置忽略https 成功了
  • Python+Docker+Redis-实现分布式爬取阳光问政

    sun political 一 编写爬虫代码 1 创建项目 pip install scrapy scrapy redis i https pypi tuna tsinghua edu cn simple scrapy startproje
  • 配置时间格式spring:jackson:date-format:yyyy-MM-dd HH:mm:ss

    配置时间格式 spring jackson date format yyyy MM dd HH mm ss
  • [密码学复习]Cryptography

    整合 Week 2对称加密 Two requirements A strong encryption algorithm A secret key known only to participants 1 有三部分构成 1 加密算法 2 可
  • JAVA集成国密SM3

    JAVA集成国密SM3加密 验签 一 pom配置 二 加密代码集成 2 1 目录结构 2 2 源码 2 3 测试 三 验签代码集成 2 1 目录结构 2 2 源码 2 3 测试 四 相关链接 国密算法概述 https blog csdn n
  • 超威主板关闭超线程教程

    说明 在使用超威主板的服务器的时候发现 关闭超线程要比开启超线程性能表现优越一些 服务器超线程默认是开启的 故而需要关闭超线程的服务 注 本文不是广告 只是有人经常咨询 故而记录了一个简单的流程步骤 与大家共勉 一 开机 开机之后等待开机界
  • 2019年DNS服务器速度测评【DNS速度排名】

    2019年DNS服务器速度测评 DNS速度排名 已经进入2019年了 很多喜爱玩游戏的用户都会在网上搜索什么DNS最快 什么dns玩游戏快 什么dns好等等 这些关于dns排名的问题 本站就这些问题进行了整合 最后总结出两大类 第一类是浏览
  • redis命令,SpringBoot整合Redis6,主从复制,哨兵模式,集群,springCache初高级应用。

    目录 1 Docker安装Redis 2 Redis的基础 2 1 redis的key命令 2 2 reids的数据结构 6 0新增的数据结构 1 String 字符串 类型 2 List 列表 类型 3 set 集合 类型 4 Hash
  • 20道java集合源码面试题,请笑纳

    问题一 看到这个图 你会想到什么 答 这个图由Map指向Collection的Produces并不是说Map是Collection的一个子类 子接口 这里的意思是指Map的KeySet获取到的一个视图是Collection的子接口 我们可以
  • 数据结构----结构--线性结构--字符串

    数据结构 结构 线性结构 字符串 一 字符串的定义方式 第一种 char str1 Hello 第二种 char str2 Hello 区别 1 所在区域不同 str1在常量区 str2在这里的写法是在栈区 2 元素是否可改 str1中的元
  • Keil STM32 不包含头文件或声明函数直接调用函数导致的异常问题

    问题 调用函数GetAmbientTemperature 获取返回值 打印出来的很大的异常数字 打印结果 解决 参考 关于Keil5调用函数不包含对应头函数问题总结 导致问题原因就是 没有包含对应函数头文件 编译虽然不会报错 但是读不到函数
  • 矩阵系统全方位管理多平台1000多个账号,实现精准化运营获客!

    全自动化视频综合处理工具 普通的剪辑软件是不可能实现自动化 一个人一天制作3000 条视频 必须要借助高效率的工具 呆头鹅批量剪辑软件 探店混剪系统 导入大量的素材 就能自动帮你批量处理 满足各大商业用户的需求 我们的软件确保你能够一天迅速
  • 根文件系统rootfs制作——使用buildroot工具(重制版)

    根文件系统rootfs制作 使用buildroot工具 重制版 0 前言 一 rootfs配置 1 下载buildroot源码 2 开始配置 Target options配置如下 Toolchain 交叉工具链配置 根据自己的环境配置 Sy
  • 用Qlabel显示pixcelmap时出现的图像扭曲的处理

    在一个将RGB图像转换为灰度图的程序中 用Qlabel显示灰度图时 出现了图像扭曲的问题 cv Mat gimg cv cvtColor original image gimg CV BGR2GRAY image gimg img QIma
  • 3.4 迭代法

    4 1 雅克比迭代法 雅可比迭代法是一种用于求解线性方程组的迭代算法 其基本思想是将线性方程组中的系数矩阵拆分为对角线矩阵和非对角线矩阵两部分 并利用对角线矩阵的逆矩阵来迭代求解方程组 具体地 设线性方程组为Ax b 其中A为系数矩阵 b为
  • C++桥接模式:Bridge Pattern

    在现实生活中 某些类具有两个或多个维度的变化且这多个维度都可能需要后期扩展 如图形既可按形状分 又可按颜色分 如何设计类似于 Photoshop 这样的软件 能画不同形状和不同颜色的图形呢 如果用继承方式 m 种形状和 n 种颜色的图形就有
  • Apache shiro学习笔记+ spring整合shiro (一)

    Apache Shiro官网 http shiro apache org 概念 shiro是一个强大灵活的开源安全框架 可以干净利落的处理认证 授权 企业会话管理和加密 shiro的首要目标是简单和易于理解 安全有时候是非常复杂令人头疼的问