securitymanager

shiro

这一生的挚爱 提交于 2020-03-06 05:05:34
shiro官网: http://shiro.apache.org 1, 什么是shiro Apache Shiro 是Java 的一个安全框架。Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE 环境,也可以用在JavaEE 环境。Shiro 可以帮助我们完成: 认证 、 授权 、 加密 、 会话管理 、 与Web 集成 、 缓存 等。 2,为什么要学shiro 1,既然shiro将安全认证相关的功能抽取出来组成一个框架,使用shiro就可以非常快速的完成认证、授权等功能的开发,降低系统成本。 2,shiro使用广泛,shiro可以运行在web应用,非web应用,集群分布式应用中越来越多的用户开始使用shiro。 java领域中spring security(原名Acegi)也是一个开源的权限管理框架,但是spring security依赖spring运行,而shiro就相对独立,最主要是因为shiro使用简单、灵活,所以现在越来越多的用户选择shiro。 3,基本功能 1,Authentication 身份认证/登录,验证用户是不是拥有相应的身份; 2, Authorization 授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用 户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用 户对某个资源是否具有某个权限;

shiro-springboot实例

怎甘沉沦 提交于 2020-03-02 20:48:19
研究renren开源的项目,看到别人优雅的使用shiro,学到了学到了 环境搭建: 数据表: 一张user表(存储用户与对应的角色) 一张role表(存储角色与对应的权限) sql语句: /* Navicat MySQL Data Transfer Source Server : aliyun Source Server Version : 80017 Source Host : www.luckycurve.cn:3306 Source Database : shiro Target Server Type : MYSQL Target Server Version : 80017 File Encoding : 65001 Date: 2020-03-02 15:34:08 */ SET FOREIGN_KEY_CHECKS = 0 ; -- ---------------------------- -- Table structure for role -- ---------------------------- DROP TABLE IF EXISTS ` role ` ; CREATE TABLE ` role ` ( ` role ` varchar ( 255 ) NOT NULL , ` perem ` varchar ( 255 ) NOT NULL )

【二】shiro入门 之 身份验证

邮差的信 提交于 2020-03-02 17:16:24
大体步骤如下: 1.首先通过new IniSecurityManagerFactory 并指定一个ini 配置文件来创建一个SecurityManager工厂; 2.接着获取SecurityManager并绑定到SecurityUtils,这是一个全局设置,设置一次即可; 3、通过SecurityUtils得到Subject,其会自动绑定到当前线程;如果在web环境在请求结束时需要解除绑定;然后获取身份验证的Token,如用户名/密码; 4、调用subject.login 方法进行登录,其会自动委托给SecurityManager.login方法进行登录; 5、如果身份验证失败请捕获AuthenticationException 或其子类,常见的如: DisabledAccountException(禁用的帐号)、LockedAccountException(锁定的帐号)、 UnknownAccountException(错误的帐号)、ExcessiveAttemptsException(登录失败次数过 多)、IncorrectCredentialsException (错误的凭证)、ExpiredCredentialsException(过期的 凭证)等,具体请查看其继承关系;对于页面的错误消息展示,最好使用如“用户名/密码 错误”而不是“用户名错误”/“密码错误”

跟开涛老师学shiro -- 身份验证

穿精又带淫゛_ 提交于 2020-03-02 17:15:50
身份验证 ,即在应用中谁能证明他就是他本人。一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明。 在shiro中,用户需要提供principals (身份)和credentials(证明)给shiro,从而应用能验证用户身份: principals :身份,即主体的标识属性,可以是任何东西,如用户名、邮箱等,唯一即可。一个主体可以有多个principals,但只有一个Primary principals,一般是用户名/密码/手机号。 credentials :证明/凭证,即只有主体知道的安全值,如密码/数字证书等。 最常见的principals和credentials组合就是用户名/密码了(对,就是这句话,身份验证说到最后,还是这个公式 user.password == login.password) 。接下来先进行一个基本的身份认证。 另外两个相关的概念是之前提到的 Subject 及 Realm ,分别是主体及验证主体的数据源。 2.2 环境准备 本文使用Maven构建,因此需要一点Maven知识。首先准备环境依赖: Java代码 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version>

shiro学习

删除回忆录丶 提交于 2020-03-02 17:14:23
1. shiro 介绍 1.1 什么是 shiro Apache Shiro 是 Java 的一个安全框架。Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在 JavaSE 环境,也可以用在 JavaEE 环境。Shiro 可以帮助我们完成:认证、授权、加密、会话管理、与 Web 集成、缓存等。 1.2 为什么要学 shiro 既然 shiro 将安全认证相关的功能抽取出来组成一个框架,使用 shiro 就可以非常快速的完成认证、授权等功能的开发,降低系统成本。 shiro 使用广泛,shiro 可以运行在 web 应用,非 web 应用,集群分布式应用中越来越多的用户开始使用 shiro。 java 领域中spring security(原名Acegi)也是一个开源的权限管理框架,但是 spring security 依赖 spring 运行,而 shiro 就相对独立,最主要是因为 shiro 使用简单、灵活,所以现在越来越多的用户选择 shiro。 1.3 基本功能 1.3.1 Authentication 身份认证/登录,验证用户是不是拥有相应的身份; 1.3.2 Authorization 授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用 户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用 户对某个资源是否具有某个权限

java开源安全框架-------Apache Shiro--第二天

自古美人都是妖i 提交于 2020-03-02 17:13:53
身份验证    即在应用中谁能证明他就是他本人。一般提供如他们的身份ID一些标志信息来表明他就是他本人,如提供身份证、用户名、密码来证明   在shiro中,用户需要提供principals(身份)和credentials(证明)给Shiro,从而应用能验证用户身份;   principals:身份,即主体的标识属性,可以是任何东西,如用户名、邮箱等,唯一即可,一个主体可以有多个principals,但是只能有一个Primary Principals,一般是用户名、密码/手机号   credentials:证明/凭证 ,即只有主体知道的安全值,如密码/数字证书等等   最常见的Principals和Crendentials组合就是用户名/密码组合了。接下来进行一个基本的身份验证   另外两个相关的概念就是之前提到的Subject和Realm,分别是主体和验证主体的数据源   一、环境准备   本文使用Maven构建,因此需要一点Maven知识,首先准备Maven环境依赖   添加junit、common-logging及shiro-core依赖即可。    二、登录、退出   1、首先准备一些用户/身份凭据(shiro.ini) 此处使用ini配置文件,通过users指定两个主体zhang/123 wang/123   2、测试用例(com.github.zhangkaitao

(二)Shiro身份验证

不羁岁月 提交于 2020-03-02 17:13:23
身份验证 ,即在应用中谁能证明他就是他本人。一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明。在shiro中,用户需要提供principals (身份)和credentials(证明)给shiro,从而应用能验证用户身份: principals :身份,即主体的标识属性,可以是任何东西,如用户名、邮箱等,唯一即可。一个主体可以有多个principals,但只有一个Primary principals,一般是用户名/密码/手机号。 credentials :证明/凭证,即只有主体知道的安全值,如密码/数字证书等。 注:最常见的principals和credentials组合:用户名/密码。 Subject:主体。 Realm :主体的数据源。 2.2 环境准备 本文使用Maven构建,因此需要一点Maven知识。首先准备环境依赖: pom.xml 添加依赖 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging<

Apache shiro集群实现 (一) shiro入门介绍

醉酒当歌 提交于 2020-03-01 12:04:43
近期在ITOO项目中研究使用Apache shiro集群中要解决的两个问题,一个是Session的共享问题,一个是授权信息的cache共享问题,官网上给的例子是Ehcache的实现,在配置说明上不算很详细,我在我们的项目中使用的是nosql(Redis)替代了ehcache做了session和cache的存储,接下来从shiro、Cas、redis、session等等基础知识、基本原理集成的角度来不断的深入分析,系列文章篇幅很长,很丰富,尽请期待! Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro Authentication) Apache shiro集群实现 (四)shiro授权(Authentication)--访问控制 Apache shiro集群实现 (五)分布式集群系统下的高可用session解决方案 Apache shiro集群实现 (六)分布式集群系统下的高可用session解决方案---Session共享 Apache shiro集群实现 (七)分布式集群系统下---cache共享 Apache shiro集群实现 (八) web集群时session同步的3种方法 今天我们先来介绍shiro的基本概念 一

SpringBoot&Shiro实现用户认证

坚强是说给别人听的谎言 提交于 2020-02-29 17:03:42
SpringBoot&Shiro实现用户认证 实现思路 思路:实现认证功能主要可以归纳为3点 1.定义一个ShiroConfig配置类,配置 SecurityManager Bean , SecurityManager为Shiro的安全管理器,管理着所有Subject; 注:如果有不太清楚shiro的朋友,可以去各大学习平台上学习一下。 2.在ShiroConfig中配置 ShiroFilterFactoryBean ,它是Shiro过滤器工厂类,依赖SecurityManager ; 3.自定义Realm实现类,包含 doGetAuthorizationInfo() 和 doGetAuthenticationInfo() 方法 , 1.导入依赖 我们搭建好Spring Boot web程序后,导入Shiro,Mybatis,mysql, thymeleaf 相关依赖: <!-- SpringBoot Web容器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- SpringBoot集成mybatis框架 --> <dependency> <groupId>org

Shiro -- (五) 授权

女生的网名这么多〃 提交于 2020-02-28 21:21:20
授权   授权,也叫访问控制,即在应用中控制谁能访问哪些资源(如访问页面/编辑数据/页面操作等)。在授权中需了解的几个关键对象: 主体(Subject)、资源(Resource)、权限(Permission)、角色(Role)。 主体   主体,即访问应用的用户,在 Shiro 中使用 Subject 代表该用户。用户只有授权后才允许访问相应的资源。 资源   在应用中用户可以访问的任何东西,比如访问 JSP 页面、查看/编辑某些数据、访问某个业务方法、打印文本等等都是资源。用户只要授权后才能访问。 权限   安全策略中的原子授权单位,通过权限我们可以表示在应用中用户有没有操作某个资源的权力。即权限表示在应用中用户能不能访问某个资源,如: 访问用户列表页面 查看/新增/修改/删除用户数据(即很多时候都是 CRUD(增查改删)式权限控制) 打印文档等等。。。   如上可以看出,权限代表了用户有没有操作某个资源的权利,即反映在某个资源上的操作允不允许,不反映谁去执行这个操作。所以后续还需要把权限赋予给用户,即定义哪个用户允许在某个资源上做什么操作(权限),Shiro 不会去做这件事情,而是由实现人员提供。   Shiro 支持粗粒度权限(如用户模块的所有权限)和细粒度权限(操作某个用户的权限,即实例级别的),后续部分介绍。 角色   角色代表了操作集合,可以理解为权限的集合