经过1周的源码研究,终于对shiro的原理有了深刻的理解,基于原理我们识别出生产环境落地这个技术的设计复杂度
shiro落地的设计复杂度:
(1)自定义CachingSessionDAO,这是核心,因为它存储了session,Principals,AuthenticationState等所有可以持久化的数据。
(2)sessionid无状态化设计:我们就可以通过继承DefaultWebSessionManager,自定义getSessionId逻辑实现无状态的会话,而不需要依赖cookie来获取session.,此方案登陆成功后必须把sessionID传给客户端。
(3)登陆成功后最好初始化session:
Session session = subject.getSession();//初始化会话
//下一步最好按照一定的规则存用户的session和相关数据到数据仓库中(比如redis),以备以后使用
(4)其他:shiro扩展:自定义AuthorizingRealm,SessionFactory,SimpleSession,过滤器,SessionListenerAdapter等等,这些都是基本操作,不重要,初级水平的开发都能理解。
(5)典型应用:单点登陆(登陆认证、登出,验证token)--特殊的认证,
单点登陆增加的设计复杂度:
-->增加登陆界面
-->登陆成功,跨域重定向(cors方案即可)
(6)备选方案1:spring security
(7)备选方案2:自己实现3类接口即可,不需要什么鬼框架,增加学习成本。。
-->用户登陆认证接口
-->用户权限查询和校验接口 (结合自定义注解+自定义过滤器实现权限过滤)
-->session的保存,更新,删除接口
分享到:
相关推荐
shiro权限框架数据库设计,附少量数据,仅供测试,非实际项目
Apache Shiro是一个强大的Java安全...总之,Apache Shiro的授权设计提供了灵活多样的方案,无论是基于角色还是基于权限,都能满足不同规模和复杂度的项目需求。理解并熟练运用这两种思路,有助于构建安全可靠的系统。
Apache Shiro 是一个全面的Java安全框架,它能够提供认证、授权、加密、会话管理以及与Web应用集成等功能,而且它被设计成易于使用和理解。Shiro 框架能够运行在Java SE和Java EE环境,无论是在简单的命令行应用程序...
Shiro 权限框架使用总结 Shiro 是一个强大而灵活的开源安全框架,能够非常清晰的处理认证、授权、管理会话以及密码加密。Shiro 的主要特点包括易于理解的 Java Security API、简单的身份认证、对角色的简单的签权、...
本OAuth2和Shiro整合项目基于Java开发,包含191个文件,其中包括137个Java源文件...系统致力于实现OAuth2(oltu)和Shiro的整合,提供了一个稳定、安全的认证和授权解决方案,适用于需要进行身份验证和授权的Web应用。
本资源提供了一套基于Spring4和Struts2的简单Shiro项目设计源码。该项目包含了11个XML配置文件、9个Java源文件、4个JSP文件、1个LICENSE文件、1个Markdown文件、1个META-INF文件、1个SQL文件、1个XSD文件,共29个...
总结起来,这个"shiro权限案例demo"是一个全面展示如何使用Apache Shiro实现在Java应用程序中进行用户权限管理的实例。它涵盖了认证、授权、会话管理和过滤器的使用,对于理解和应用Shiro的安全机制非常有帮助。通过...
【权限管理框架Shiro学习总结】 在IT领域,权限管理是一个关键的安全机制,它确保了只有合法的用户才能访问特定的资源。Apache Shiro是一个强大且易用的Java安全框架,提供认证、授权、会话管理和加密等功能。下面...
2. **shiro-web-1.7.1.jar**:这个模块是针对Web环境设计的,提供了Web相关的安全控制,如Filter配置、HTTP请求的拦截处理等,方便在Web应用中集成Shiro。 3. **shiro-lang-1.7.1.jar**:Shiro的语言支持模块,可能...
相较于其他安全框架,Shiro 在设计上更为简洁明了,便于开发者的理解和使用。 - **认证**:这是指用户的身份验证过程,通常被称为“登录”。Shiro 能够处理用户提供的凭据(如用户名和密码),并与已知的用户记录...
1. **简单易用**:Shiro API设计直观,易于理解和集成到现有应用中。 2. **不侵入性**:Shiro 不是Spring那样的全容器解决方案,它可以在任何环境中运行,不需要EJB、Servlet容器等环境支持。 3. **可扩展性**:...
- 代码简洁:Shiro 的 API 简单易用,与 SpringMVC 结合后,可以在 Spring 容器中管理 Shiro 组件,降低复杂度。 - 灵活性高:Shiro 支持多种认证和授权策略,可以根据项目需求进行定制。 - 低侵入性:Shiro 不...
Apache Shiro是一个强大且易用的Java安全框架,主要用于处理认证、授权、加密以及会话管理等核心安全性问题。在给定的压缩包"shiro1.3.2"中,包含了Shiro的一个核心组件库"shiro-all-1.3.2.jar"以及两个日志管理库...
Apache Shiro是一个强大且易用的Java安全框架,它提供了认证、授权、加密和会话管理功能,可以非常方便地用于构建和强化应用程序的安全性。Shiro的核心目标是为开发者提供一个简单易用的安全API,使得开发者能够快速...
7. **API设计**:Shiro的API设计简洁,易于理解和使用,让开发者能够快速上手。 8. **可扩展性**:Shiro的架构设计允许开发者通过插件和自定义实现来扩展其功能,以适应各种复杂的业务场景。 在学习和使用Shiro时...
在Spring Boot项目中集成Shiro,可以简化权限控制的复杂度,使得开发者能够更加专注于业务逻辑的实现。 1. **Shiro的基本概念** - **认证**:验证用户身份的过程,即验证用户名、密码等信息是否正确。 - **授权**...
`shiro-redisson` 的设计应该易于与其他组件集成,如 Spring Boot 或者其他微服务架构,这样可以更好地适应不断发展的企业级应用需求。 总之,`shiro-redisson` 为 Shiro 带来了分布式环境下的高效缓存和会话管理...
最后,"跟我学Shiro教程.zip"可能是整个教程的综合资源包,包含更多补充材料、练习题或者项目案例,旨在帮助学习者巩固理论知识,并提升实际操作技能。 在学习Shiro时,你需要理解以下关键知识点: 1. **身份验证...
这个“Shiro_学习总结.zip”文件包含了一个 PDF 文档,很可能是对 Shiro 框架核心概念、功能以及使用方法的详尽总结。 在 Shiro 中,主要涉及以下几个核心组件: 1. **认证(Authentication)**:这是验证用户身份...