shiro

Apache Shiro 集成Spring(二)

▼魔方 西西 提交于 2019-12-24 06:59:23
1、依赖: <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.4.0</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.4.0</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-web</artifactId> <version>1.4.0</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.8.9</version> </dependency> 2、自定义Realm: package com.example.demo_mg.realm; import org.apache.commons.collections.map.HashedMap;

业余草教你简单 4 步搞定 SpringBoot 整合 Shiro!

孤街醉人 提交于 2019-12-24 06:27:17
SpringBoot 整合 Shiro,非常的简单,因为有了 shiro-spring-boot-web-starter。但是群里很多人,还在使用原生的整合方式。看的我非常的着急,Boot 的一大特性完全让你们给“自杀”掉了。导致自己给自己找麻烦,花成倍的时间不说,还整合不出来,搞出各种花式错误! 下面看看我的整合方式,简单 4 步就搞定! 第一步,引入对应 starter。 第二步,创建一个 MyRealm。 实际项目中,这里就是查数据库。 第三步,做个 Shiro 的简单配置。application.properties 文件中配置 Shiro 相关的基本配置信息如下: 第 4 步,配置 ShiroConfig。 至此,整个整合过程已经完成了。下面我们再写一个 Controller 测试一下真个例子。 测试结果我就不截图了,大家可以自己去验证,需要源码的可以到:https://github.com/xmt1139057136/xttblog-boot-shiro 下载,或者加我微信号“xttblog”免费获取! 来源: CSDN 作者: Richarlie 链接: https://blog.csdn.net/s_156/article/details/103643343

Shiro-菜鸟初试篇

孤街浪徒 提交于 2019-12-24 05:21:33
Shiro 框架介绍 Subject(主体) shiro中是一个接口,接口中定义了很多认证授权相关的方法 通过安全管理器进行认证和授权。 SecuritManager(安全管理器) 它是shiro的核心 负责对所有的subject进行安全管理。 通过SecuritManager可以完成subject的认证、授权等操作。 SecurityManager通过Authenticator进行认证,通过Autuhrizer进行授权,通过SessionManager进行会话管理。 SecuritManager是一个接口,继承了Authenticator、Authorizer、SessionManager这三个接口。 Authenticator(认证器) 对主体进行认证 Autuhrizer(授权器) 用户通过认证器认证通过,在访问功能时通过授权器判断用户是否有此功能的操作权限。 Realm SecuritManager进行安全认证需要通过Realm获取用户权限数据 Realm也是一个接口,有多种实现: 1 、将用户的权限信息写到配置文件 2 、将用户的权限信息存储到数据库 Realm 从配置文件或者数据库等读取用户的权限信息 SessionManager(会话管理器) shiro框架定义了一套会话管理,它不依赖web容器的session 所以shiro可以使用在非web应用上

2、shiro之用户认证

别来无恙 提交于 2019-12-24 01:16:09
1. Authentication :所谓的用户的认证就是用户登录。 需要提供身份和凭证给shiro。也就是subject中的标志属性,唯一标志subject。(你提供的信息一定是能够唯一标识subject的,比如:身份证号、手机号、邮箱… …) 解释 : Credentials 凭证:是指被Subject知道的密码值。可以是密码,也可以是数字证书等。 Principals/Credentials最常见的组合:用户名/密码。 在shrio中通常使用username、password、Token来指定身份和凭证信息。 3.代码实现 1.新建测试类 AuthenticationTest 备注:别忘记提前导入shiro的Maven依赖哦 新建shiro.ini文件 ### root是用户。, 123456 是密码 ### [ users ] 是配置用户——可以有多个用户 [ users ] root = 123456 代码编写 package shiroTest ; /** * @title: AuthenticationTest * @projectName sixBox * @description: TODO * @author Lenovo * @date 2019/12/2317:51 */ import org . apache . shiro . SecurityUtils

1、什么是shiro

倾然丶 夕夏残阳落幕 提交于 2019-12-24 01:10:04
1.什么是shiro? shiro是一个基于java的开源的安全框架。可以完成认证、授权、会话管理、加密、缓存等功能。 2.为什么去学习shrio 在java的世界中,有更早的安全框架。有spring security和shiro。Spring Security要依赖与Spring,并且比较复杂,学习成本比较高。shiro比较简单,而且标记独立,既可以在java se中使用,也可以在java ee中使用。并且在分布式集群环境下使用。 3.shiro的结构体系 (1) Authentication: 认证 验证登录用户是否合法,也就是登录。 (2)Authorization:授权 登录以后才会授权,授予谁具有访问某些资源的权限。 (3) Session Management:会话管理 登录之后会产生一次session. sessionManagment就是管理用户特定的回话。 (4)Cryptography:加密 通过使用加密算法保持数据安全同事易于使用。提供了常见的加密算法,使得数据在应用中可以很方便的实现数据安全,并且很方便。 (5)Web Support:web应用支持 shiro可以很方便的集成到web应用程序中 (6)Caching:缓存 shiro提供了对缓存的支持。支持多种缓存架构,如:ehcache、缓存数据库-Redis。 (7)Concurrency:并发支持

Spring boot使用Shiro框架

心不动则不痛 提交于 2019-12-23 10:35:54
1.maven引包 1 <dependency> 2 <groupId>org.apache.shiro</groupId> 3 <artifactId>shiro-spring</artifactId> 4 <version>1.2.5</version> 5 </dependency> 6 <dependency> 7 <groupId>org.apache.shiro</groupId> 8 <artifactId>shiro-ehcache</artifactId> 9 <version>1.2.5</version> 10 </dependency> 2.创建数据库 shiro一般需要5张表:3张实体表user,role,permission(一对一),2张关系映射表user-role,role-permission(一对多) 大致结构: user:id name password ... role : id name permission:id name user-role:uid rid role-permission:rid pid 配置文件和model,mapper,service等构建过程不赘述,能实现查询数据库即可 3.创建抽象类 AbstractUserRealm package com.tqh.demo.config; import com.tqh

Shiro-菜鸟实战篇-自定义Realm

五迷三道 提交于 2019-12-23 08:56:02
Realm SecuritManager(安全管理器)进行安全认证需要通过Realm获取用户权限数据 Realm也是一个接口,有多种实现: 1、将用户的权限信息写到配置文件 2、将用户的权限信息存储到数据库 Realm 从配置文件或者数据库等读取用户的权限信息 而Shiro自己封装的Realm只能从配置文件读取信息,而用户的认证和授权信息一般存储在关系型数据库中,方便我们维护相关信息。基于这一点,我们可以自定义Realm,下面来分析一下。 自定义Realm-继承 AuthorizingRealm 你要问我为什么要继承AuthorizingRealm?我是不会告诉你的,来看下图继承关系。 可以看出shiro框架所封装好的方法是new IniRealm(“classpath:xxxx.ini”); 那么,我们下面通过几张图来扒一扒它的"祖宗"。 那么相信你现在懂得为什么要继承AuthorizingRealm了。 现在我们就进行编写自定义的Realm类。 public class ShiroRealm extends AuthorizingRealm { protected AuthorizationInfo doGetAuthorizationInfo ( PrincipalCollection principalCollection ) { return null ; }

(完整版)springboot2.X整合shiro,实现shiro-redis分布式session、用户登录和权限控制

落爺英雄遲暮 提交于 2019-12-23 06:42:45
公司新项目用的是shiro做权限控制,一直说写一篇shiro的文章,一直拖着没写。马上过年了, 这债该还了呀。。。 项目基于springboot(2.1.7.RELEASE) + mybatis-plus(3.2.0) + shiro-redis(3.2.3) 知识储备 原理参考:1、 shiro框架详解。 2、 Shiro权限管理框架详解 。 有些名词还是得先了解: Subject:主体,可以看到主体可以是任何可以与应用交互的“用户”; SecurityManager : 安全管理器,对全部的subject进行安全管理,它是shiro的核心,负责对所有的subject进行安全管理。通过SecurityManager可以完成subject的认证、授权等,实质上SecurityManager是通过Authenticator进行认证,通过Authorizer进行授权,通过SessionManager进行会话管理等; FilterDispatcher;是 Shiro 的心脏;所有具体的交互都通过 SecurityManager 进行控制;它管理着所有 Subject、且负责进行认证和授权、及会话、缓存的管理。 Authenticator(authc):认证器,负责主体认证的,这是一个扩展点,如果用户觉得 Shiro 默认的不好,可以自定义实现;其需要认证策略(Authentication

Shiro Authenticates Non-existent User in LDAP

安稳与你 提交于 2019-12-23 03:19:13
问题 Can anyone suggest why Shiro tells me in my trace logs below that a non existent user "anybody" is authenticated ok? It seems to give itself a session earlier on in the log prior to actually authenticating. I assume that this is just to run the authentication. It redirects ok to my ShiroFilterFactoryBean loginUrl if I logout and then try to access any secured url. But then it will authenticate any user. Jan 27 20:25:16 TRACE org.apache.shiro.subject.support.DelegatingSubject - attempting to

Shiro Authenticates Non-existent User in LDAP

*爱你&永不变心* 提交于 2019-12-23 03:19:09
问题 Can anyone suggest why Shiro tells me in my trace logs below that a non existent user "anybody" is authenticated ok? It seems to give itself a session earlier on in the log prior to actually authenticating. I assume that this is just to run the authentication. It redirects ok to my ShiroFilterFactoryBean loginUrl if I logout and then try to access any secured url. But then it will authenticate any user. Jan 27 20:25:16 TRACE org.apache.shiro.subject.support.DelegatingSubject - attempting to