Shiro详解

简介: Shiro详解

 1、Shiro简介

Apache Shiro是一个开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架具有直观、易

用等特性,同时也能提供健壮的安全性,虽然它的功能不如SpringSecurity那么强大,但是在普通的项

目中也够用了。

2、 Shiro的功能简介

1. 验证用户来核实他们的身份(登录)

2. 对用户执行访问控制,如:判断用户是否被分配了一个确定的安全角色;判断用户是否被允许做某事(授权)

3. 在任何环境下使用Session API,即使没有Web容器

4. 在身份验证,访问控制期间或在会话的生命周期,对事件作出反应

5. 聚集一个或多个用户安全数据的数据源,并作为一个单一的复合用户视图

6. 单点登录(SSO)功能

7. 为没有关联到登录的用户启用"Remember Me"服务 等等

Apache Shiro是一个拥有许多功能的综合性的程序安全框架。下面的图表展示了Shiro的重点:

0image.gif编辑

Shiro中有四大基石——身份验证,授权,会话管理和加密。

1. Authentication:有时也简称为登录,这是一个证明用户是谁的行为。

2. Authorization:访问控制的过程,也就是决定去访问什么

3. Session Management:管理用户特定的会话,即使在非Web EJB 应用程序。

4. Cryptography:通过使用加密算法保持数据安全同时易于使用。

此外,Shiro也提供了额外的功能来解决在不同环境下所面临的安全问题,如:

1. Web SupportShiroweb支持的API能够轻松地帮助保护Web应用程序。

2. Caching:缓存是Apache Shiro中的第一层公民,来确保安全操作快速而又高效。

3. ConcurrencyApache Shiro利用它的并发特性来支持多线程应用程序。

4. Testing:测试支持的存在来帮助你编写单元测试和集成测试。

5. "Run As":一个允许用户假设为另一个用户身份(如果允许)的功能,有时候在管理脚本很有用。

6. "Remember Me":在会话中记住用户的身份,这样用户只需要在强制登录时候登录。

相关文章
|
5月前
|
存储 算法 Java
实现不同数据库的表间的 JOIN 运算的极简方法
跨库计算是数据分析中的常见难题,尤其涉及多数据库系统时,表间 JOIN 操作复杂度显著提升。esProc 提供了一种高效解决方案,能够简化跨库 JOIN 的实现。例如,在车辆管理、交管和公民信息系统中,通过 esProc 可轻松完成如下任务:按城市统计有车公民事件数量、找出近一年获表彰的车主信息,以及按年份和品牌统计车辆违章次数。esProc 支持不同关联场景(如维表关联与主子表关联)的优化算法,如内存索引、游标处理和有序归并,从而大幅提升编码和运算效率。无论是同构还是异构数据源,esProc 均能灵活应对,为复杂数据分析提供强大支持。
|
12月前
|
运维 监控 测试技术
构建高效运维体系:从监控到自动化的实践之路
【10月更文挑战第9天】 在当今信息技术飞速发展的时代,运维作为保障系统稳定性与效率的关键角色,正面临前所未有的挑战。本文将探讨如何通过构建一个高效的运维体系来应对这些挑战,包括监控系统的搭建、自动化工具的应用以及故障应急处理机制的制定。我们将结合具体案例,分析这些措施如何帮助提升系统的可靠性和运维团队的工作效率。
193 1
|
SQL 关系型数据库 MySQL
面试官:limit 100w,10为什么慢?如何优化?
面试官:limit 100w,10为什么慢?如何优化?
416 2
面试官:limit 100w,10为什么慢?如何优化?
|
存储 小程序 数据库
服务器数据恢复—异常断电导致存储不可用的数据恢复案例
服务器存储数据恢复环境: 一台存储中有一组由12块SAS硬盘组建的RAID6磁盘阵列,划分为一个卷,分配给几台Vmware ESXI主机做共享存储。该卷中存放了大量Windows虚拟机,这些虚拟机系统盘是统一大小,数据盘大小不确定,数据盘是精简模式。 服务器存储故障: 机房断电导致服务器存储异常关机,加电后存储无法使用。
服务器数据恢复—异常断电导致存储不可用的数据恢复案例
|
存储 运维 负载均衡
「微服务」这10道Consul面试题值得一看
Consul 是一个强大的分布式服务发现和配置管理工具,用于服务注册、健康检查、负载均衡、故障恢复等。它支持多数据中心和多种协议,提供服务发现、健康检查、KV 存储和事件通知功能。服务注册与健康检查由 Agent 实现,负载均衡通过 Service Mesh 实现。尽管 Consul 提供诸多优点,如多数据中心支持和高可用性,但其学习和部署成本较高,适合大型项目,对于小型或初学者可能过于复杂。在使用时需根据实际需求和资源考虑。
196 3
|
数据安全/隐私保护 Python
Python3,2段代码,给pdf文件添加水印,原来watermark还可以这么玩。
Python3,2段代码,给pdf文件添加水印,原来watermark还可以这么玩。
34930 1
Python3,2段代码,给pdf文件添加水印,原来watermark还可以这么玩。
|
Web App开发 缓存 监控
|
JavaScript Java 大数据
转行程序员4年半,被裁了
转行程序员4年半,被裁了
214 2
|
开发框架 安全 Java
【Java专题_01】springboot+Shiro+Jwt整合方案
【Java专题_01】springboot+Shiro+Jwt整合方案
190 0
|
Linux 开发工具 git
Docker部署selenium程序-从本地到云服务器-详细步骤
Docker部署selenium程序-从本地到云服务器-详细步骤
693 0