shiro

SpringBoot系列

我是研究僧i 提交于 2020-04-29 10:14:28
会飞的污熊 2018-01-22 16173 阅读 spring jwt springboot RESTful API认证方式 一般来讲,对于RESTful API都会有认证(Authentication)和授权(Authorization)过程,保证API的安全性。 Authentication vs. Authorization Authentication指的是确定这个用户的身份,Authorization是确定该用户拥有什么操作权限。 认证方式一般有三种 Basic Authentication 这种方式是直接将用户名和密码放到Header中,使用 Authorization : Basic Zm9vOmJhcg == ,使用最简单但是最不安全。 TOKEN认证 这种方式也是再HTTP头中,使用 Authorization : Bearer <token> ,使用最广泛的TOKEN是JWT,通过签名过的TOKEN。 OAuth2.0 这种方式安全等级最高,但是也是最复杂的。如果不是大型API平台或者需要给第三方APP使用的,没必要整这么复杂。 一般项目中的RESTful API使用JWT来做认证就足够了。 什么是JWT Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519)

springcloud 项目源码 微服务 分布式 Activiti6 工作流 vue.js html 跨域 前后分离

℡╲_俬逩灬. 提交于 2020-04-26 14:01:33
1.代码生成器: [正反双向](单表、主表、明细表、树形表,快速开发利器) freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面、建表sql脚本、处理类、service等完整模块 2.多数据源: (支持同时连接无数个数据库,可以不同的模块连接不同数的据库)支持N个数据源 3. 阿里数据库连接池 druid ,安全权限框架 shiro( 菜单权限和按钮权限 ) , 缓存框架 ehcache 4. 代码编辑器, 在线模版编辑,仿开发工具编辑器 5.调用摄像头拍照 自定义裁剪编辑头像,头像图片色度调节 6.websocket 及时站内信并声音提醒、实时在线管理、websocket及时刷新页面(完胜ajax技术) 7.redis存储分布式缓存 自windows redis 绿色版,方便开发者本地开发测试 ----------------------------------------------------------------------------------------------------------------- 服务介绍 ( 各个服务单独运行,高可用、低耦合 ) 一:springcloud服务 ---------------------------------------------------------------------------------

微服务分布式企业框架

我的梦境 提交于 2020-04-21 20:22:05
微服务分布式企业框架 Springmvc+mybatis+shiro+Dubbo+ZooKeeper+Redis+KafKa - 知乎 https://zhuanlan.zhihu.com/p/28978979 roncoo-pay: 龙果支付系统(roncoo-pay)是国内首款开源的互联网支付系统,拥有独立的账户体系、用户体系、支付接入体系、支付交易体系、对账清结算体系。目标是打造一款集成主流支付方式且轻量易用的支付收款系统,满足互联网业务系统打通支付通道实现支付收款和业务资金管理等功能。 https://gitee.com/roncoocom/roncoo-pay Exrick/xmall: 基于SOA架构的分布式电商购物商城 前后端分离 前台商城:Vue全家桶 后台管理系统:Dubbo/SSM/Elasticsearch/Redis/MySQL/ActiveMQ/Shiro/Zookeeper等 https://github.com/Exrick/xmall 来源: oschina 链接: https://my.oschina.net/u/4274145/blog/3290475

码云个人收集Java项目汇总

依然范特西╮ 提交于 2020-04-21 04:30:24
一 activiti 1 介绍 activiti技术实战。 2 地址 https://gitee.com/cakin24/activiti 二 imooc_mybatis-plus 1 介绍 慕课网《MyBatis-Plus入门》课程源码。 2 地址 https://gitee.com/cakin24/imooc_mybatis-plus 三 javatest 1 介绍 Java的各种测试小项目。 2 地址 https://gitee.com/cakin24/javatest 四 easypoi-test 1 介绍 EasyPoi技术实战。 2 地址 https://gitee.com/cakin24/easypoi-test 五 mybatis-plus-samples 1 介绍 MyBatis-Plus的官方示例。 2 地址 https://gitee.com/cakin24/mybatis-plus-samples 六 IDEA 1 介绍 慕课网IDEA的演示项目。 2 地址 https://gitee.com/cakin24/IDEA 七 RabbitMQDemo 1 介绍 朱忠华《RabbitMQ实战指南》配套代码。 2 地址 https://gitee.com/cakin24/RabbitMQDemo 八 Algorithm 1 介绍 《算法》第4版配套代码。 2 地址

Spring与Shiro整合 加载权限表达式

旧城冷巷雨未停 提交于 2020-04-20 10:20:27
Spring与Shiro整合 加载权限表达式 作者 : Stanley 罗昊 【转载请注明出处和署名,谢谢!】 如何加载权限表达式 我们在上章内容中画了一张图,里面有三个分项,用户 角色 权限; 那么接下来我们就要思考一个问题了,这三张表中的数据要从何而来呢? 用户表 首先先看用户表,用户表的数据库是从用户注册而来; 角色 角色的话肯定是我们手动去创建出来,但是我们在创建角色之前呢?是不是需要先有权限后才能去创建角色呢?因为角色是依赖于权限,只要先有了权限,我们就可以讲它们归类,分配给我们某一个角色; 所以我们的突破口就是,权限该如何去加载这个问题; 我们可以打开我们的Cotroller在接口上可以看到凡是带有Shiro注解的,都是需要有相对应的权限才可以访问的: 重新加载权限 那,问题就来了,我们如何将注解中的权限表达式(employee:edit)存入到数据库中呢? 我们在之前的操作中,是手动的将表达式复制粘贴到数据库中,也就是手动添加进去的,那你想一下,如果需要添加非常多的权限,我们还依然用手动的方式,显然非常麻烦! 那我们能不能想一种办法,就是让用户一点击或进入这个接口执行一个方法马上让它把所有Cotroller中的权限表达式给全部拿出来存入到数据库中; 能不能做到呢? 答案是可以的! 我们在页面上有一个功能是重新加载权限,这个意思就是我们点击后,你加下来的编码

一个配置解决 Shiro 登录 URL 中带 JSESSIONID 的问题

牧云@^-^@ 提交于 2020-04-18 00:38:45
Shiro 在1.3.2以上的版本中已给出解决方案,只需添加如下配置即可: <!-- 自定义会话管理配置 --> <bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager"> <!-- 防止登录URL中带JSESSIONID --> <property name="sessionIdUrlRewritingEnabled" value="false" /> ......... </bean> 参考文章: https://www.cnblogs.com/xh_Blog/p/8029109.html 来源: oschina 链接: https://my.oschina.net/u/4370323/blog/3238395

spring boot 基于 shiro / spring security 实现自定义登录

隐身守侯 提交于 2020-04-16 18:21:26
【推荐阅读】微服务还能火多久?>>> shiro shiro 配置文件 /** * Shiro配置 */ @Configuration @RequiredArgsConstructor public class ShiroConfig { private final ShiroService shiroService; private final SysUserTokenService sysUserTokenService; private final SysCaptchaService sysCaptchaService; private final Gson gson; /** * 自定义权限管理 * * @see ShiroConfiguration * @see DefaultSecurityManager */ @Bean("securityManager") public DefaultWebSecurityManager defaultWebSecurityManager() { DefaultWebSecurityManager defaultWebSecurityManager = new DefaultWebSecurityManager(); // realms ArrayList<Realm> realms = new ArrayList<>();

shiro之编码加密

∥☆過路亽.° 提交于 2020-04-15 18:13:49
【推荐阅读】微服务还能火多久?>>> 一、Shiro 提供了base64和16进制字符串编码/解码的API支持: String str = "h"; //base64 编码 String base64Encoded = Base64.encodeToString(str.getBytes()); //base64 编码解码 String str2 = Base64.decodeToString(base64Encoded); System.out.println(str.equals(str2)); String str3 = "y"; //16进制字符串编码 String hexEncoded = Hex.encodeToString(str3.getBytes()); //16进制字符串解码 String str4 = new String(Hex.decode(hexEncoded)); System.out.println(str3.equals(str4)); //byte数组与String转换 CodecSupport.toBytes(str, "utf-8"); CodecSupport.toString(str.getBytes(), "utf-8"); 二、散列算法 散列算法一般用于生成数据的摘要信息,是一种不可逆的算法,一般适合存储密码之类的数据

Apache Shiro在web开发安全框架中的应用

痞子三分冷 提交于 2020-04-14 15:53:45
【推荐阅读】微服务还能火多久?>>> 前阶段就 hadoop的分享了一些内容,希望对新手入门的朋友有点帮助吧!对于hadoop新手入门的,还是比较推荐大快搜索的DKHadoop发行版,三节点标准版还是值得拥有的(三节点的标准版是可以免费下载的,与付费版的目前功能一样,只是节点数量不同,对于新手而言三节点的够用了)。正在学习hadoop可以下载一下研究学习之用,也可以留言向我索要! 今天准备分享一下Apache Shiro 在web开发中的应用。 shiro安全框架是目前为止作为登录注册最常用的框架,因为它十分的强大简单,提供了认证、授权、加密和会话管理等功能 。 shiro能做什么? 认证 :验证用户的身份 授权 :对用户执行访问控制:判断用户是否被允许做某事 会话管理 :在任何环境下使用 Session API,即使没有 Web 或EJB 容器。 加密 :以更简洁易用的方式使用加密功能,保护或隐藏数据防止被偷窥 Realms :聚集一个或多个用户安全数据的数据源 单点登录 (SSO)功能。 为没有关联到登录的用户启用 "Remember Me“ 服务 Shiro 的四大核心部分 Authentication(身份验证) :简称为“登录”,即证明用户是谁。 Authorization(授权) :访问控制的过程,即决定是否有权限去访问受保护的资源。 Session

Shiro | 实现权限验证完整版

江枫思渺然 提交于 2020-04-14 14:33:46
【推荐阅读】微服务还能火多久?>>> 写在前面的话 提及权限,就会想到安全,是一个十分棘手的话题。这里只是作为学校Shiro的一个记录,而不是,权限就应该这样设计之类的。 Shiro框架 1、Shiro是基于Apache开源的强大灵活的开源安全框架。 2、Shiro提供了 认证 , 授权 , 企业会话管理 、 安全加密 、 缓存管理 。 3、Shiro与Security对比 4、Shiro整体架构 5、特性 6、认证流程 认证 当我们理解Shiro之后,我们就能比较容易梳理出认证流程,大概就是下面这样子。 我们来看一段测试代码: // 1.构建SecurityManager环境 DefaultSecurityManager defaultSecurityManager = new DefaultSecurityManager(); defaultSecurityManager.setRealm(simpleAccountRealm); // 2.主体提交认证请求 SecurityUtils.setSecurityManager(defaultSecurityManager); Subject subject = SecurityUtils.getSubject(); // 3.认证 UsernamePasswordToken token = new