jwt

Azure AD(五)使用多租户应用程序模式让任何 Azure Active Directory 用户登录

余生颓废 提交于 2020-10-25 20:46:55
一,引言 距离上次分享关于 “Azure AD" 的知识过去差不多2个多月了, 今天最近刚好也是学习,分享一下关于Azure AD 使用多租户应用程序模式让任何 Azure Active Directory 用户登录,之前仅仅都是在当初租户的用户或者受邀来宾来访问和使用我们的api资源的。今天我们将以下关于只要拥有微软 的工作/学校账号的用户都可以使用我们受AD保护的 API 资源。接下来就开始我们今天的分享 --------------------我是分割线-------------------- 1,Azure AD(一)入门认识 2,Azure AD(二)调用受Microsoft 标识平台保护的 ASP.NET Core Web API 上 3,Azure AD(二)调用受Microsoft 标识平台保护的 ASP.NET Core Web API 下 4,Azure AD(三)知识补充-Azure资源的托管标识 5,Azure AD(四)知识补充-服务主体 6,Azure AD(五)使用多租户应用程序模式让任何 Azure Active Directory 用户登录 二,正文 1,修改受保护资源的应用的账号类型 首先我们登陆Azure Portal 上,并且切换一下当前活动的目录(也就是当前所在的租户) 在之前在AAD中注册好的应用注册---”WebApi“

jeecg-cloud微服务架构图

自古美人都是妖i 提交于 2020-10-25 06:33:01
jeecg-cloud: 基于Spring Boot 2.1.3、 Spring Cloud Greenwich.SR3 & Alibaba、 Shiro、JWT的快速开发平台(Jeecg Boot的微服务版本,功能和底层代码,两边保持同步) https://gitee.com/jeecg/jeecg-cloud jeecg-cloud微服务架构图 mini_1590566044258.png (1412×1039) https://static.jeecg.com/upload/test/jeecg-cloud微服务架构图 mini_1590566044258.png 来源: oschina 链接: https://my.oschina.net/u/4342210/blog/4307274

总结删除文件或文件夹的7种方法-JAVA IO基础总结第4篇

一世执手 提交于 2020-10-24 21:27:49
本文是Java IO总结系列篇的第4篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 总结java创建文件夹的4种方法及其优缺点-JAVA IO基础总结第三篇 如果您阅读完成,觉得此文对您有帮助,请给我点个赞,您的支持是我不竭的创作动力。 为了方便大家理解,我特意制作了本文对应的视频: 总结删除文件或者文件夹的7种方法 一、删除文件或文件夹的四种基础方法 下面的四个方法都可以删除文件或文件夹,它们的共同点是: 当文件夹中包含子文件的时候都会删除失败,也就是说这四个方法只能删除空文件夹 。 需要注意的是:传统IO中的File类和NIO中的Path类既可以代表文件,也可以代表文件夹。 File类的delete() File类的deleteOnExit() Files.delete(Path path) Files.deleteIfExists(Path path); 它们之间的差异: 成功的返回值 是否能判别文件夹不存在导致失败 是否能判别文件夹不为空导致失败 备注 File类的delete() true 不能(返回false) 不能(返回false) 传统IO File类的deleteOnExit() void 不能,但不存在就不会去执行删除 不能(返回void)

【项目实践】在用安全框架前,我想先让你手撸一个登陆认证

北城以北 提交于 2020-10-24 17:38:21
以项目驱动学习,以实践检验真知 前言 登录认证,估计是所有系统中最常见的功能了,并且也是最基础、最重要的功能。为了做好这一块而诞生了许多安全框架,比如最常见的Shiro、Spring Security等。 本文是一个系列文章,最终的目的是想与大家分享在实际项目中如何运用安全框架完成登录认证( Authentication )、权限授权( Authorization )等功能。只不过一上来就讲框架的配置和使用我觉得并不好,一是对于新手来说会很懵逼,二是不利于大家对框架的深入理解。所以本文先写 手撸登录认证基本功能,下一篇文章再写 不用安全框架手撸权限授权,最后再写 如何运用安全框架整合这些功能。 本文会从最简单、最基础的讲解起,新手可放心食用。读完文章你能收获: 登录认证的原理 如何使用 Session 和 JWT 分别完成登录认证功能 如何使用过滤器和拦截器分别完成对登录认证的统一处理 如何实现上下文对象 本文所有代码全部放在了 github 上,clone下来即可运行查看效果。 基础知识 登录认证(Authorization)的概念非常简单,就是通过一定手段对用户的身份进行确认。 确认这还不容易?就是判断用户的账号和密码是否正确嘛,if、else搞定。没错,这的确很容易,但是确认过后呢?要知道在web系统中有一个重要的概念就是: HTTP请求是一个无状态的协议

被我用烂的DEBUG调试技巧,专治各种搜索不到的问题

情到浓时终转凉″ 提交于 2020-10-24 06:55:47
在开发过程中,遇到问题,我们经常会使用搜索引擎来查找问题的解决方案,然后予以解决。但是有些问题一时半会搜索不到解决方案,需要自己去解决。这里分享下我解决这些问题使用的调试技巧,给大家一个解决问题的新思路! 问题描述 在 《我扒了半天源码,终于找到了Oauth2自定义处理结果的最佳方案!》 一文中,当JWT令牌过期或者签名不正确时,我们想要自定义网关认证失败的返回结果。这个问题解决起来很简单,只需修改一行代码即可。但是当时查找解决方案确实花费了一番功夫,通过DEBUG源码才找到了Spring Security中提供的自定义配置,解决了该问题。下面讲讲我是如何通过DEBUG源码找到这个解决方案的! 解决过程 首先我们需要找到一个切入点,既然问题是由于JWT令牌过期或者签名不正确才产生的,我们很容易想到RSASSAVerifier这个关键类,它的verify()方法是用来验证签名是否正确的,我们可以在该方法上面打个断点DEBUG一下,发现程序执行过程果然会经过这里,要是签名不正确会直接返回false; 这时候我们可以查下堆栈信息,了解下这次调用的整个过程,可以看到红框以下的调用都是WebFlux里面的调用,没有参考意义,所以调用最早是从NimbusReactiveJwtDecoder类开始的; 我们搜索下NimbusReactiveJwtDecoder在哪里被使用到了

asp.net core之SignalR

时光怂恿深爱的人放手 提交于 2020-10-23 08:39:34
SignalR 是什么? ASP.NET Core SignalR 是一个开源的实时框架,它简化了向应用中添加实时 Web 功能的过程。 实时 Web 功能是服务器端能够即时的将数据推送到客户端,而无需让服务器等待客户端请求后才返回数据。 SignalR 主要适用于: 从服务器获取数据并高频更新的应用。比如股票,GPS应用等。 仪表板和监视应用。比如状态实时更新等。 需要通知的应用。比如即时聊天工具,以及社交网络里面的通知等。 协作应用。比如团体会议软件。 SignalR 支持下面几种底层传输技术: Web Socket 是不同于HTTP的另一种TCP协议。它是全双工的通信协议,浏览器和服务器之间可以相互通信。它会保持长连接状态只到被主动关闭。它支持文本和二进制的消息传输,也支持流媒体。其实正常的HTTP请求也是使用TCP Socket. Web Socket标准使用了握手机制把用于HTTP的Socket升级为使用WS协议的 WebSocket socket. 服务器发送事件 (Server Sent Events) 服务器可以在任何时间把数据发送到浏览器,而浏览器则会监听进来的信息,并使用一个叫做EventSource的对象用来处理传过来的信息。这个连接一直保持开放,直到服务器主动关闭它。它是单向通信,只能发生文本信息,而且很多浏览器都有最大并发连接数的限制。 长轮询(Long

一杯咖啡的时间,上手 Koa2 + MySQL 开发

倖福魔咒の 提交于 2020-10-23 08:01:22
凭借精巧的“洋葱模型”和对 Promise 以及 async/await 异步编程的完全支持,Koa 框架自从诞生以来就吸引了无数 Node 爱好者。然而 Koa 本身只是一个简单的中间件框架,要想实现一个足够复杂的 Web 应用还需要很多周边生态支持。这篇教程不仅会带你梳理 Koa 的基础知识,还会充分地运用和讲解构建 Web 应用必须的组件(路由、数据库、鉴权等),最终实现一个较为完善的用户系统。 起步 Koa 作为 Express 原班人马打造的新生代 Node.js Web 框架,自从发布以来就备受瞩目。正如 Koa 作者们在文档[3]中所指出的: ❝ Philosophically, Koa aims to "fix and replace node", whereas Express "augments node".(Express 是 Node 的补强,而 Koa 则是为了解决 Node 的问题并取代之。) ❞ 在这一篇文章中,我们将手把手带你开发一个简单的用户系统 REST API,支持用户的增删改查以及 JWT 鉴权,从实战中感受 Koa2 的精髓,它相比于 Express 做出的突破性的改变。我们将选择 TypeScript[4] 作为开发语言,数据库选用 MySQL,并使用 TypeORM[5]作为数据库桥接层。 ❝ 「注意」 这篇文章不会涉及 Koa