shiro 系列】的更多相关文章

Shiro设计的初衷就是可以运行于任何环境:无论是简单的命令行应用程序还是复杂的企业集群应用.由于运行环境的多样性,所以有多种配置机制可用于配置,本节我们将介绍Shiro内核支持的这几种配置机制.       小贴士:多种配置方案:     Shiro的SecurityManager是和JavaBean兼容的,所以我们可以使用诸如Java.Xml(Spring.Jboss.Guice等).YAML.Json.Groovy等配置方式.   一.基于Java代码的配置     最简单的创建并且使用S…
Shiro的设计目标就是让应用程序的安全管理更简单.更直观.     软件系统一般是基于用户故事来做设计.也就是我们会基于一个客户如何与这个软件系统交互来设计用户界面和服务接口.比如,你可能会说:“如果用户登录了我们的系统,我就给他们显示一个按钮,点击之后可以查看他自己的账户信息.如果没有登录,我就给他显示一个注册按钮.”       上述应用程序在很大程度上是为了满足用户的需求而编写的,即便这个“用户”不是人,而是一个其他的软件系统.你仍然是按照谁当前正在与你的系统交互的逻辑来编写你的逻辑代码…
 一.介绍 看完这个10分钟入门之后,你就知道如何在你的应用程序中引入和使用Shiro.以后你再在自己的应用程序中使用Shiro,也应该可以在10分钟内搞定. 二.概述 关于Shiro的废话就不多说了,详情可以看本系列第一篇博文:Apache Shiro系列一:初识 Apache Shiro可以做什么? 答案是很多,但是在这里我们就不展开说了,如果对这个有兴趣,可以去看Shiro的特性. 三.下载 1)确保安装了1.6及其以上版本的JDK,以及3.0.3以上版本的maven: 2)从Downlo…
一.什么是Shiro Apache Shiro是一个强大.灵活.开源的安全框架,它支持用户认证.权限控制.企业会话管理以及加密等. Apache Shiro的第一个也是最重要的一个目标就是易于使用和理解.对应用程序做安全管理常常很复杂,甚至很痛苦,但是实际上完全可以避免.一个好的安全安全管理框架应该能够将复杂度隐藏在框架内部,对外提供简洁.直观的API,以便用户可以很简单的给应用添加安全控制. 下面是Apache Shiro能够提供给我们的一些特性: #,做用户身份认证: #,做访问权限控制,比…
Apache Shiro是啥呢,安全框架. 360百科是这么描述的:        Apache Shiro(日语"堡垒(Castle)"的意思)是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理功能,可为任何应用提供安全保障 - 从命令行应用.移动应用到大型网络及企业应用. Shiro为解决下列问题(我喜欢称它们为应用安全的四要素)提供了保护应用的API: 认证 - 用户身份识别,常被称为用户"登录"; 授权 - 访问控制; 密码加密 - 保护或隐…
做任何事情,首先要双方就一些概念的理解达成一致,这样大家就有共同语言,后续的沟通效率会高一些. #,Authentication,认证,也就是验证用户的身份,就是确定你是不是你,比如通过用户名.密码的方式验证,或者某些第三方认证,比如微信认证. #,Authorization,授权,也叫访问控制,也就是看你是否有权限做什么事情,比如是否有权限看某个文件,或者是否有权限做后台管理: #,Cipher,加密方式,这里主要有几种常用的加密方式,比如分组密码(Block Ciphers).流密码(Str…
Shiro的设计目标是简化应用的安全管理工作.软件通常是以用户为基础设计的.也就是说,我们经常是根据用户是怎样和我们的软件交互的来设计相关的用户接口.比如,你可能会说"如果是已经登录的用户与我的软件交互,那么我给他就显示一个按钮,让他点击后可以查看自己的账户信息.如果用户没有登录,那么我就显示一个注册按钮". 这个例子说明了我们软件中很多代码都是为了满足用户需求而写.即使"用户"有时候压根就不是一个人(比如说另一个软件系统). Shiro的设计反映了这些思想,这样使…
在本教程中,我们会写一个简单的.仅仅输出一些内容命令行程序,从而对Shiro有一个大体的感觉. 一.准备工作 本教程需要Java1.5+,并且我们用Maven生成项目,当然Maven不是必须的,你也可以通过导入Shiro jar包的方式.或使用Ant.Ivy,喜欢哪种就用哪种. 开始之前,确定你的Maven版本为2.2.1+(如果你用的是Maven的话),用mvn --version确定Maven的版本. 现在,我们将正式开始.首先新建一个文件夹,比如说shiro-tutorial,然后将下面的…
在本示例中, 使用 INI 文件来定义用户和角色. 首先学习一下 INI 文件的规范. =======================Shiro INI 的基本规范=======================[main]# 在这里定义 SecurityManager 和 Realms 等 [users]# 每一行定义一个用户, 格式是 username = password, role1, role2, ..., roleN [roles]# 角色在这里定义, 格式是 roleName = p…
和 Spring Security 项目一样, Apache Shiro 也是一个被广泛使用安全框架, 它们都能完成认证.授权.会话管理等. 简单对比一下 Apache Shiro 和 Spring Security: 1. 适用范围: Spring Security 必须和 Spring MVC 一起使用, 而 Shiro 是一个通用的安全框架, 可以用在 Spring MVC 或 JavaEE/JavaSE 环境中. 2. 复杂程度: Spring Security 是一个非常复杂的架构,…
什么是shiro? Shiro是apache的一个开源权限管理的框架,它实现用户身份认证,权限授权.加密.会话管理等功能,组成了一个通用的安全认证框架 使用shiro来实现权限管理,可以非常有效的提高团队开发效率,从而降低开发成本以及维护成本. shiro 的基本架构 Subject:主体,subject记录了当前操作的用户信息.我们对这个subject进行认证和授权. SecurityManager:安全管理者,主体进行认证和授权都 是通过securityManager进行.是shiro的核心…
其实也是应大家要求,讲一下权限管理,之前有讲过,但是没有拿出来细讲,这次索性录了视频从头到尾把shiro讲一遍.后续spring security会另外找个时间也讲一下. 主要内容会包括以下 1.了解基于角色/资源的权限管理方式 2.掌握权限数据模型,数据库表结构 3.了解基于url拦截的权限管理 4.shiro实现用户登录(认证) 5.shiro实现用户权限(授权) 6.J2EE中shiro与web项目的整合,主要是结合spring 7.项目实战:整合到LeeCX开源项目中,实现基于角色以及资…
为了安全起见,同一个账号理应同时只能在一台设备上登录,后面登录的踢出前面登录的.用Shiro可以轻松实现此功能. shiro中sessionManager是专门作会话管理的,而sessinManager将会话保存在sessionDAO中,如果不给sessionManager注入 sessionDAO,会话将是瞬时状态,没有被保存起来,从sessionManager里取session,是取不到的. 此例中sessionDAO注入了Ehcache缓存,会话被保存在Ehcache中,不知Ehcache…
Apache Shiro 是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权,企业会话管理和加密.Apache Shiro 的首要目标是易于使用和理解.安全有时候是很复杂的,甚至是痛苦的,但它没有必要这样.框架应该尽可能掩盖复杂的地方,露出一个干净而直观的 API,来简化开发人员在使他们的应用程序安全上的努力.以下是你可以用 Apache Shiro 所做的事情:验证用户来核实他们的身份对用户执行访问控制,如:判断用户是否被分配了一个确定的安全角色.判断用户是否被允许做某事.在任何环…
http://jinnianshilongnian.iteye.com/blog/2019547 shiro学习以及附带DEMO地址: http://www.sojson.com/shiro ,github地址:https://github.com/baichengzhou/SpringMVC-Mybatis-Shiro-redis-0.2 (项目中package:com.sojson.common.utils.vcode包是验证码的封装包. 并且提供了一个VerifyCodeUtils.jav…
Shiro-密码的MD5加密   1.密码的加密 在数据表中存的密码不应该是123456,而应该是123456加密之后的字符串,而且还要求这个加密算法是不可逆的,即由加密后的字符串不能反推回来原来的密码,如果能反推回来那这个加密是没有意义的. 著名的加密算法,比如 MD5,SHA1 2.MD5加密 1). 如何把一个字符串加密为MD5 2). 使用MD5加密算法后,前台用户输入的字符串如何使用MD5加密,需要做的是将当前的Realm 的credentialsMatcher属性,替换为Md5Cre…
shiro权限框架是一个非常优秀的框架,前面的几篇文章对shiro进行了非常详细的介绍和原理分析,那么接下来让我们开始在web项目中使用它(javase也能用shiro): 一.数据库表结构设计 二.准备好一个ssm工程,然后导入shiro的jar包开始shiro整合的第一步 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> &…
一.身份验证 先来看看身份验证的流程 流程如下: 1.首先调用Subject.login(token)进行登录,其会自动委托给Security Manager,调用之前必须通过SecurityUtils. setSecurityManager()设置: 2.SecurityManager负责真正的身份验证逻辑:它会委托给Authenticator进行身份验证: 3.Authenticator才是真正的身份验证者,Shiro API中核心的身份认证入口点,此处可以自定义插入自己的实现: 4.Aut…
Apache Shiro是Java的一个安全框架.目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Security做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的Shiro就足够了. Shiro可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境.Shiro可以帮助我们完成:认证.授权.加密.会话管理.与Web集成.缓存等.这不就是我们想要的嘛,而且Shi…
一.先从配置类入手,主要是@Bean了一个ShiroFilterFactoryBean: @Data @Configuration @Slf4j @EnableConfigurationProperties(ShiroProperties.class) public class ShiroConfiguration { //.......这里省略了大部分跟主题无关的配置代码 /** * 这里名字叫 shiroFilter,后续通过FilterRegistrationBean从spring容器中向…
1. 顶级账户分配权限用户需要被分配相应的权限才可访问相应的资源.权限是对于资源的操作一张许可证.给用户分配资源权限需要将权限的相关信息保存到数据库.这些相关内容包含:用户信息.权限管理.用户分配的权限信息(数据模型) 2. 权限模型设计主体(user.password)权限(权限名称.资源id)/资源(资源名称.访问url)角色(角色名称)角色和权限关系(角色id.权限id)主体和角色关系(主体id.角色id) 3. 权限分配有两种  ​ ​3.1 基于角色的权限控制 这些角色包含比如:总经理…
1. 什么是权限管理 一般来说,只要有用户参与,那么该系统都会需要权限管理,权限管理实现了对用户访问系统  指定功能的限制,按照管理员定义的安全规则或权限策略,限制用户只能访问自己被授权的那些资源路径. 权限管理包括用户认证和授权两部分(俗称登录和鉴权).也就是说先要进行用户的登录,登录以后会对用户访问的功能模块(即:访问资源的url路径)进行权限验证. 2. 用户认证(用户登录) 身份认证,简单来说就是登录.检验一个用户是否为合法用户的业务处理过程.最常见的方式为系统对用户输入的用户名和密码判…
自定义realm: /** * 认证和授权 */ @Component public class UserRealm extends AuthorizingRealm { @Autowired private UserService userService; @Autowired private AuthService authService; /** * 授权(验证权限时调用) */ @Override protected AuthorizationInfo doGetAuthorizatio…
一.pom引入maven依赖 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-logging/commo…
Shiro 简介 照例又去官网扒了扒介绍: Apache Shiro™ is a powerful and easy-to-use Java security framework that performs authentication, authorization, cryptography, and session management. With Shiro's easy-to-understand API, you can quickly and easily secure any ap…
Shiro系列文章: [Shiro]Apache Shiro架构之身份认证(Authentication) [Shiro]Apache Shiro架构之权限认证(Authorization) [Shiro]Apache Shiro架构之自定义realm [Shiro]Apache Shiro架构之实际运用(整合到Spring中) 前面两节内容介绍了Shiro中是如何进行身份和权限的认证,但是只是单纯的进行Shiro的验证,简单一点的话,用的是.ini配置文件,也举了个使用jdbc realm的例…
Shiro系列文章: [Shiro]Apache Shiro架构之身份认证(Authentication) [Shiro]Apache Shiro架构之集成web [Shiro]Apache Shiro架构之自定义realm [Shiro]Apache Shiro架构之实际运用(整合到Spring中) 上一篇博文总结了一下Shiro中的身份认证,本文主要来总结一下Shiro中的权限认证(Authorization)功能,即授权.如下:   本文参考自Apache Shiro的官方文档:http:…
Shiro系列文章: [Shiro]Apache Shiro架构之权限认证(Authorization) [Shiro]Apache Shiro架构之集成web [Shiro]Apache Shiro架构之自定义realm [Shiro]Apache Shiro架构之实际运用(整合到Spring中) Apache Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理功能,可为任何应用提供安全保障.本文主要介绍一下Shiro中的身份认证功能,如下:   本文参考自Apach…
首发地址:https://www.guitu18.com/post/2019/07/28/44.html 本篇是Shiro系列第二篇,使用Shiro基于Redis实现分布式环境下的Session共享.在讲Session共享之前先说一下为什么要做Session共享. 为什么要做Session共享 什么是Session 我们都知道HTTP协议(1.1)是无状态的,所以服务器在需要识别用户访问的时候,就要做相应的记录用于跟踪用户操作,这个实现机制就是Session.当一个用户第一次访问服务器的时候,服…
本篇是Shiro系列第三篇,Shiro中的过滤器初始化流程和实现原理.Shiro基于URL的权限控制是通过Filter实现的,本篇从我们注入的ShiroFilterFactoryBean开始入手,翻看源码追寻Shiro中的过滤器的实现原理. 初始化流程 ShiroFilterFactoryBean实现了FactoryBean接口,那么Spring在初始化的时候必然会调用ShiroFilterFactoryBean的getObject()获取实例,而ShiroFilterFactoryBean也在…