shiro

阿里资深架构推荐:Apache Shiro安全框架详解

六眼飞鱼酱① 提交于 2020-03-30 22:26:33
引言 Apache Shiro是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权,企业会话管理和加密。Apache Shiro的首要目标是易于使用和理解。安全有时候是很复杂的,甚至是痛苦的,但它没有必要这样。框架应该尽可能掩盖复杂的地方,露出一个干净而直观的API,来简化开发人员在使他们的应用程序安全上的努力。因为很多时候很多人比较喜欢使用Spring提供的Spring Security和Shiro来进行对比,我们也对比一下这个内容。Apache Shiro是Java的一个安全框架。目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Security做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的Shiro就足够了。 主页 目录 编码/加密: 与Web集成: 拦截器机制: 会话管理: 缓存机制: 与Spring集成: SSL: 综合实例: OAuth2集成: 多项目集中权限管理及分布式会话: 资料获取方法 点点这个链接免费获取:本人免费整理了Java高级资料,涵盖了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo高并发分布式等教程,一共30G,需要自己领取。 传送门: https://mp.weixin.qq.com

Shiro 入门demo

回眸只為那壹抹淺笑 提交于 2020-03-30 20:37:31
1、新建maven项目,引入shiro的核心依赖 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.5.1</version> </dependency> 2、在resource下新建shiro.ini #定义用户 [users] #用户名=密码,角色。一个用户可以对应多个角色,比如同时是绿钻、黄钻,逗号分隔即可 chy1 = abcd, common chy2 = abcd, vip chy3 = abcd, svip #定义角色 [roles] #角色=权限。可以有多个权限,逗号分隔 common = watch vip = watch,download svip = * 角色不能使用通配符*,但权限可以使用通配符*,表示该角色具有所有的权限,检测权限的时候能检测出来。 3、新建实体类User public class User { private String name; private String password; public User() { } public User(String name, String password) { this.name = name; this.password = password; }

Shiro简介

断了今生、忘了曾经 提交于 2020-03-30 15:01:50
Shiro简介 Apache Shiro是Apache旗下的一个强大易用的Java安全|权限框架,提供了认证、授权、加密和会话管理等功能。 相比于Spring Security,Shiro可能没有 Spring Security 的功能强大,但Shiro相对简单一些。 其实很多时候都不需要十分复杂的安全验证,大部分时候使用短小精悍的Shiro就足够了。 Shiro的功能模块 Authentication:身份认证/登录,验证用户是不是拥有相应的身份 Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限,比如验证某个用户是否是vip、svip,是否拥有下载文件的权限等等 Session Manager:会话(session)管理 Cryptography:加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储 这些是主要关心的,常使用的。 Web Support:Web 支持,使shiro可以集成到 Web 环境 Caching:缓存,比如用户登录后,缓存用户信息、拥有的角色/权限,不必每次去数据库查,提高效率 Concurrency:shiro支持多线程应用的并发验证,比如在一个线程中开启另一个线程,能自动把权限传播过去 Testing:提供测试支持 Run As:允许一个用户以另一个用户(如果他们允许)的身份进行访问 Remember Me

权限框架 基础知识

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-26 14:11:09
权限管理框架 属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源   包括用户身份认证和授权两部分,简称认证授权 1.身份认证 判断一个用户是否为合法用户的处理过程; 最常用的简单身份认证方式是系统通过核对用户输入的用户名和口令,看其是否与系统中存储的该用户的用户名和口令一致,来判断用户身份是否正确 2.授权管理 即访问控制,控制谁能访问哪些资源; 体进行身份认证后需要分配权限方可访问系统的资源,对于某些资源没有权限是无法访问的 3.权限控制 1)基于角色 RBAC基于角色的访问控制(Role-Based Access Control)是以角色为中心进行访问控制,比如:主体的角色为总经理可以查询企业运营报表,查询员工工资信息等,访问控制流程如下: 2)基于资源   RBAC基于资源的访问控制(Resource-Based Access Control)是以资源为中心进行访问控制,比如:主体必须具有查询工资权限才可以查询员工工资信息等,访问控制流程如下:   上图中的判断逻辑代码可以理解为:   if(主体.hasPermission("查询工资权限标识")){     查询工资   } 3)基于url拦截   企业中常用的权限管理方法,实现思路是:将系统操作的每个url配置在权限表中,将权限对应到角色

shiro简单使用转载

空扰寡人 提交于 2020-03-26 10:36:18
3 月,跳不动了?>>> 转载: https://www.cnblogs.com/asker009/p/9471712.html Springboot2.0 集成shiro权限管理 在springboot中结合shiro教程搭建权限管理,其中几个小细节的地方对新手不友好,伸手党更是无法直接运行代码,搭建过程容易遇坑,记录一下。关键的地方也给注释了。 版本:springboot版本2.x,shiro1.4 一、依赖 < dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.4.0</version> </dependency> 二、实体 实体有三个,根据规则会自动生成两个中间表,数据库实际上会生成5张表。 分别是User,SysRole,SysPermission,中间表按照@JoinTable来生成。 @Entity public class User { @Id @GenericGenerator(name ="generator",strategy = "native" ) @GeneratedValue(generator = "generator" ) private Integer userId; @Column(nullable =

Shiro

爷,独闯天下 提交于 2020-03-25 21:07:32
Shiro Shiro概述 ​ ​ Apache Shiro 是Java 的一个 安全框架 。Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE 环境,也可以用在JavaEE 环境。Shiro 可以帮助我们完成: 认证 、 授权 、 加密 、 会话管理 、 与Web 集成 、 缓存 等。 基本功能 1. Authentication 【ɔː,θentɪ'keɪʃən/】 ​​ ​ 身份认证/登录,验证用户是不是拥有相应的身份; 身份 凭证 2. Authorization 【/ɔːθəraɪ'zeɪʃ(ə)n/】 ​​ ​ 授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限; 3. Session Manager ​​ ​ 会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通JavaSE环境的,也可以是如Web环境的; 4. Cryptography 【/krɪp'tɒgrəfɪ/】 ​ ​ 加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储; 5. Web Support ​ ​ Web 支持,可以非常容易的集成到Web 环境; 6. Caching  ​ 缓存,比如用户登录后,其用户信息

Shiro安全框架学习笔记

て烟熏妆下的殇ゞ 提交于 2020-03-23 23:03:17
一、Shiro框架简单介绍 Apache Shiro是Java的一个安全框架,旨在简化身份验证和授权。Shiro在JavaSE和JavaEE项目中都可以使用。它主要用来处理身份认证,授权,企业会话管理和加密等。Shiro的具体功能点如下: (1)身份认证/登录,验证用户是不是拥有相应的身份; (2)授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限; (3)会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通JavaSE环境的,也可以是如Web环境的; (4)加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储; (5)Web支持,可以非常容易的集成到Web环境; Caching:缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以提高效率; (6)shiro支持多线程应用的并发验证,即如在一个线程中开启另一个线程,能把权限自动传播过去; (7)提供测试支持; (8)允许一个用户假装为另一个用户(如果他们允许)的身份进行访问; (9)记住我,这个是非常常见的功能,即一次登录后,下次再来的话不用登录了。 文字描述可能并不能让猿友们完全理解具体功能的意思。下面我们以登录验证为例

Shiro的 rememberMe 功能使用指导(为什么rememberMe设置了没作用?)

戏子无情 提交于 2020-03-23 12:07:49
UsernamePasswordToken token = new UsernamePasswordToken(loginForm.getUsername(),loginForm.getPassword()); if(loginForm.getRememberMe() != null && "Y".equals(loginForm.getRememberMe())){ token.setRememberMe(true); } 你可以自己设置一个标志位,然后根据这个标志位判断一下用户是否勾选了记住我,如果勾选了就使用 token.setRememberMe(true) 设置为记住我。 相信很多人跟我一开始想的一样,觉得这样设置完了,然后不退出直接关浏览器再打开浏览器,进入我们的网站就会自动登陆。但是结果是:当你重开了浏览器后,进入网站依然让你输入用户名和密码! 那么,究竟这个功能要怎么使用呢? 原理解释 shiro对cookie做了什么? 其实你设置了这个rememberMe之后shiro还是有做一点事情的,它会生成一个cookie值叫 rememberMe 并保存在你的浏览器里面,而且这个参数会随着你调用 subject.logout() 会被自动清除。这个参数的值是一串很长的Base64加密过的字符串,大概长这样 名称: rememberMe 内容:

使用HuTool工具类,实现登录验证码

五迷三道 提交于 2020-03-20 09:51:17
3 月,跳不动了?>>> 1.首先引入HuTool的依赖包 <!--hutool--> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>4.6.8</version> </dependency> 2.登录页面 <div class="layui-form-item input-item" id="imgCode"> <label for="code">验证码</label> <input type="text" placeholder="请输入验证码" name="code" autocomplete="off" id="code" class="layui-input"> <img th:src="@{/login/getCode}" onclick="this.src=this.src+'?'"> </div> 3.LoginController.java 登录控制器 package com.wang.springboot.sys.controller; import cn.hutool.captcha.CaptchaUtil; import cn.hutool.captcha.LineCaptcha; import com.wang

Shiro系列(0) - 权限管理在J2EE企业级开发中的应用与实战

元气小坏坏 提交于 2020-03-20 07:33:30
其实也是应大家要求,讲一下权限管理,之前有讲过,但是没有拿出来细讲,这次索性录了视频从头到尾把shiro讲一遍。后续spring security会另外找个时间也讲一下。 主要内容会包括以下 1、了解基于角色/资源的权限管理方式 2、掌握权限数据模型,数据库表结构 3、了解基于url拦截的权限管理 4、shiro实现用户登录(认证) 5、shiro实现用户权限(授权) 6、J2EE中shiro与web项目的整合,主要是结合spring 7、项目实战:整合到LeeCX开源项目中,实现基于角色以及资源的授权模块 8、集群配置以及多站点单点登录 具体内容同步更新文章以及视频到公众号,cnblogs以及新浪微博,以官网itzixi.com为主 来源: https://www.cnblogs.com/leechenxiang/p/7677522.html