`

Apache Shiro运用(一)Shiro Architecture介绍

阅读更多

一、什么是Shiro 


Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能: 

  • 认证 - 用户身份识别,常被称为用户“登录”;
  • 授权 - 访问控制;
  • 密码加密 - 保护或隐藏数据防止被偷窥;
  • 会话管理 - 每用户相关的时间敏感的状态。

对于任何一个应用程序,Shiro都可以提供全面的安全管理服务。并且相对于其他安全框架,Shiro要简单的多。 

二、Shiro的架构介绍 


首先,来了解一下Shiro的三个核心组件:Subject, SecurityManager 和 Realms. 如下图: 



 
 

Subject:

即“当前操作用户”。但是,在Shiro中,Subject这一概念并不仅仅指人,也可以是第三方进程、后台帐户(Daemon Account)或其他类似事物。它仅仅意味着“当前跟软件交互的东西”。但考虑到大多数目的和用途,你可以把它认为是Shiro的“用户”概念。 
Subject代表了当前用户的安全操作,SecurityManager则管理所有用户的安全操作。 

SecurityManager:

它是Shiro框架的核心,典型的Facade模式,Shiro通过SecurityManager来管理内部组件实例,并通过它来提供安全管理的各种服务。 

Realm:

Realm充当了Shiro与应用安全数据间的“桥梁”或者“连接器”。也就是说,当对用户执行认证(登录)和授权(访问控制)验证时,Shiro会从应用配置的Realm中查找用户及其权限信息。 
从这个意义上讲,Realm实质上是一个安全相关的DAO:它封装了数据源的连接细节,并在需要时将相关数据提供给Shiro。当配置Shiro时,你必须至少指定一个Realm,用于认证和(或)授权。配置多个Realm是可以的,但是至少需要一个。 
Shiro内置了可以连接大量安全数据源(又名目录)的Realm,如LDAP、关系数据库(JDBC)、类似INI的文本配置资源以及属性文件等。如果缺省的Realm不能满足需求,你还可以插入代表自定义数据源的自己的Realm实现。 


Shiro完整架构图:



 

除前文所讲Subject、SecurityManager 、Realm三个核心组件外,Shiro主要组件还包括: 
Authenticator :认证就是核实用户身份的过程。这个过程的常见例子是大家都熟悉的“用户/密码”组合。多数用户在登录软件系统时,通常提供自己的用户名(当事人)和支持他们的密码(证书)。如果存储在系统中的密码(或密码表示)与用户提供的匹配,他们就被认为通过认证。 
Authorizer :授权实质上就是访问控制 - 控制用户能够访问应用中的哪些内容,比如资源、Web页面等等。 
SessionManager :在安全框架领域,Apache Shiro提供了一些独特的东西:可在任何应用或架构层一致地使用Session API。即,Shiro为任何应用提供了一个会话编程范式 - 从小型后台独立应用到大型集群Web应用。这意味着,那些希望使用会话的应用开发者,不必被迫使用Servlet或EJB容器了。或者,如果正在使用这些容器,开发者现在也可以选择使用在任何层统一一致的会话API,取代Servlet或EJB机制。 
CacheManager:对Shiro的其他组件提供缓存支持。 

 

三、参考资料

 

http://shiro.apache.org/10-minute-tutorial.html:10分钟入门指南

 

http://shiro.apache.org/java-authentication-guide.html:Apache Shiro 授权 入门

 

http://shiro.apache.org/java-authorization-guide.html:Apache Shiro 认证 入门

 

http://shiro.apache.org/reference.html:Apache Shiro参考手册

http://blog.csdn.net/peterwanghao

 

 

 

  • 大小: 159.7 KB
  • 大小: 37.1 KB
分享到:
评论

相关推荐

    Apache Shiro 1.2.x 参考手册1

    Apache Shiro 是一个强大且易用的 Java 安全框架,它提供了认证、授权、加密和会话管理功能,简化了开发人员处理安全问题的过程。本参考手册主要分为以下几个部分,详细介绍了 Apache Shiro 的各个方面。 1. **...

    Shiro1.2.2_源码(压缩包)

    Apache Shiro 是一个强大且易用的 Java 安全框架,提供身份认证、授权、会话管理和加密等全面的安全服务。对于开发者来说,通过学习 Shiro 的源码,可以深入理解其内部工作原理,提高安全编程的能力。在这个 Shiro...

    基于Java的两个通用安全模块的设计与实现.zip

    例如,Apache HttpClient库可以用于安全的HTTPS通信,Apache Shiro是一个轻量级的安全框架,可以与Spring Security协同工作,提供身份验证、授权等功能。 总的来说,这个项目可能涉及到Java后端开发中的许多安全...

    Springcloud微服务

    - **Apache Shiro**:一个强大且易用的Java安全框架,它提供了一整套的安全服务,包括认证、授权、加密和会话管理等。Shiro的架构简单灵活,易于与其他框架集成。 #### 九、服务端验证Hibernate Validator - **...

    idev-architecture:idev-architecture

    Spring Security或者Apache Shiro可以提供身份验证和授权功能,保护应用的安全。 15. **前端技术**: 项目可能包含前端部分,使用HTML、CSS和JavaScript,配合React、Vue或Angular等现代前端框架构建用户界面。 ...

    Java高级互联网MCA架构师 架构师全景概论

    6. **安全**:OAuth2、JWT令牌、HTTPS、SSL/TLS加密,以及Spring Security或Apache Shiro等安全框架的使用。 7. **DevOps**:Git版本控制、持续集成/持续部署(CI/CD)流程,如Jenkins、Docker容器化和Kubernetes...

    可乐吧在线游戏最新服务器端及部分源代码.zip

    这部分可能会涉及到Spring Security或者Apache Shiro等安全框架,通过设置权限控制、加密算法等方式保障系统安全。 至于部分源代码,虽然没有具体的文件内容,但我们可以推测其中可能包含游戏逻辑处理、网络通信...

    Enterprise_Application_Architecture:엔터프라이즈리케이션코드

    Spring Security和Apache Shiro等第三方库提供了更高级的安全解决方案。 9. **性能优化**:Java的性能监控和调优工具,如JVisualVM和JMeter,可以帮助识别和解决性能瓶颈。 10. **微服务架构**:近年来,微服务已...

    Architecture-Logicielle

    Java提供了如Spring Security和Apache Shiro等安全框架,用于处理认证、授权和加密等安全问题。理解并实施这些机制是构建健壮系统的必要步骤。 总结来说,"Architecture-Logicielle"涵盖了软件设计的各个方面,...

    Java EE常用框架.xmind

    shiro是apache的一个开源框架,是一个权限管理的框架,实现 用户认证、用户授权 传统使用URL拦截的时候,要将所有的URL都配置起来,繁琐、不易维护 而我们的Shiro实现系统的权限管理,有效提高开发效率,从而...

    基于java的用的在线地图浏览模块.zip

    10. **安全性**:考虑到在线应用的安全性,项目可能包含了用户认证和授权机制,如使用Spring Security或Apache Shiro框架来保护敏感数据和操作。 综上所述,这个基于Java的在线地图浏览模块结合了Java编程、GIS技术...

    新奥家电连锁网络系统.zip

    系统设计上,可能遵循了SOA(Service-Oriented Architecture)服务化思想,将各个功能模块封装为独立的服务,通过服务接口进行通信,增强了系统的可扩展性和灵活性。分布式缓存如Redis也可能被用来加速数据读取,...

    Java安全性编程指南(PDG).rar

    14. **安全框架与库**:如Spring Security、Apache Shiro等,提供高级的安全管理功能,简化了安全代码的编写。 15. **代码审计**:定期进行代码审查,查找并修复潜在的安全问题。 Java安全性编程指南(PDG)可能涵盖...

    CoA_Lab

    在"CoA_Lab"中,可能有实现这些功能的示例代码,比如使用Spring Security或Apache Shiro等库。 综上所述,"CoA_Lab"可能是一个深入探讨Java安全性的实验项目,涵盖了认证、授权、加密和网络安全等多个方面。参与者...

    41900-Fundamentals-of-Security:学科分配

    11. **Java安全框架**:了解Apache Shiro、Spring Security等安全框架,以及如何利用它们增强应用的安全性。 通过深入学习这些Java安全相关的知识点,开发者可以构建更安全的应用程序,减少漏洞,并提高系统的整体...

    SEFASSIGNMENT1

    9. **安全性**:考虑到处理敏感的员工数据,HRSystem必须遵循数据保护法规,可能采用了HTTPS加密通信,使用Spring Security或Apache Shiro等框架进行权限管理。 10. **持续集成/持续部署(CI/CD)**:项目可能采用了...

    医院管理系统

    2. 安全控制:Spring Security或Apache Shiro实现用户认证与授权,保护系统安全。 3. 消息队列:使用RabbitMQ或Kafka实现消息队列,处理高并发场景下的请求,提高系统响应速度。 五、服务集成 1. 验证码服务:...

    TPSBackendSystem

    Java的安全框架如Spring Security或Apache Shiro用于实现用户认证和授权,防止未授权访问。同时,HTTPS协议保证数据传输的安全性。 6. **测试与持续集成**: 使用JUnit进行单元测试,Mockito模拟依赖对象,保证...

Global site tag (gtag.js) - Google Analytics