oauth

Spring Security Oauth2 单点登录案例实现和执行流程剖析

。_饼干妹妹 提交于 2020-10-26 04:00:51
在线演示 演示地址: http://139.196.87.48:9002/kitty 用户名:admin 密码:admin Spring Security Oauth2 OAuth是一个关于授权的开放网络标准,在全世界得到的广泛的应用,目前是2.0的版本。OAuth2在“客户端”与“服务提供商”之间,设置了一个授权层(authorization layer)。“客户端”不能直接登录“服务提供商”,只能登录授权层,以此将用户与客户端分离。“客户端”登录需要获取OAuth提供的令牌,否则将提示认证失败而导致客户端无法访问服务。关于OAuth2这里就不多作介绍了,网上资料详尽。下面我们实现一个 整合 SpringBoot 、Spring Security OAuth2 来实现单点登录功能的案例并对执行流程进行详细的剖析。 案例实现 项目介绍 这个单点登录系统包括下面几个模块: spring-oauth-parent : 父模块,管理打包 spring-oauth-server : 认证服务端、资源服务端(端口:8881) spring-oauth-client : 单点登录客户端示例(端口:8882) spring-oauth-client2: 单点登录客户端示例(端口:8883) 当通过任意客户端访问资源服务器受保护的接口时,会跳转到认证服务器的统一登录界面,要求登录,登录之后

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“

Spring Security OAuth2 SSO

£可爱£侵袭症+ 提交于 2020-10-25 07:37:57
通常公司肯定不止一个系统,每个系统都需要进行认证和权限控制,不可能每个每个系统都自己去写,这个时候需要把登录单独提出来 登录和授权是统一的 业务系统该怎么写还怎么写 最近学习了一下Spring Security,今天用Spring Security OAuth2简单写一个单点登录的示例 在此之前,需要对OAuth2有一点了解 这里有几篇文章可能会对你有帮助 《 Spring Boot Security 》 《 OAuth 2.0 》 《 OAuth 2.0 授权码请求 》 《 Spring Security OAuth 2.0 》 《 Spring Boot OAuth 2.0 客户端 》 1. 服务器端配置 1.1. Maven依赖 <? xml version="1.0" encoding="UTF-8" ?> < project xmlns ="http://maven.apache.org/POM/4.0.0" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation ="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > < modelVersion > 4.0.0 </

总结删除文件或文件夹的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)

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

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

【5G核心网】5GC核心网之网元NRF

徘徊边缘 提交于 2020-10-24 05:13:07
NRF,Network Repository Function,网络仓储功能,支持以下功能: - 支持服务发现功能,从NF实例接收NF发现请求,并将发现的NF实例(被发现)的信息提供给NF实例。 - 维护可用NF实例及其支持的服务的NF配置文件 NF 实例的配置文件在 NRF 中包括以下新信息: - NF instance ID. - NF type. - PLMN ID. - Network Slice related Identifier(s) e.g. S-NSSAI, NSI ID. - FQDN or IP address of NF. - NF capacity information. - NF priority information. -- NF Specific Service authorization information. - if applicable, Names of supported services. - Endpoint Address(es) of instance(s) of each supported service. - Identification of stored data/information. - Other service parameter, e.g., DNN, notification endpoint for

SpringCloud与Dubbo的比较

元气小坏坏 提交于 2020-10-17 01:38:08
Dubbo 一、dubbo简介 Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。 Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。 现已发展成为Apache的顶级孵化开源项目,详见官网: http://dubbo.apache.org/en-us/ 二、dubbo组织架构图 官网的dubbo组织架构图 详细介绍 1、Registry:服务注册与发现中心,作为服务提供者和消费者注册与发现的中心。 2、Provider:服务提供者,在注册中心注册作为服务提供的一方,发布服务到服务注册中心。 3、Consumer:服务消费者,通过注册中心协调,订阅可用的已注册的服务。 4、Container:服务运行容器,独立的容器类似于tomcat/jboss的作用,作为服务运行的容器。 5、Monitor:dubbo的监控中心,用来显示接口暴露、注册情况,也可以看接口的调用明细,调用时间等。 三、dubbo的优势 单一应用架构,当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的 数据访问框架(ORM)是关键。 垂直应用架构,当访问量逐渐增大