springboot2整合oauth2笔记

SpringBoot OAuth2.0认证管理流程详解 OAuth2.0是一个开放的授权协议,可以用来实现第三方应用对我们API的访问控制,OAuth2.0中定义的角色包括: 1) Resource Owner(资源拥有者) 2) Client (第三方接入平台,请求者) 3) Resource Server (服务器资源: 数据中心) 4) Authorization Server (认证服务器) 授权认证的基本流程包括: 首先Client需要向Resource Ow...... 阅读详情

老大说要拥抱开源才能进步,所以抛砖引玉,欢迎评论和指教

基础知识:

        我眼中的oauth2:

                

        oauth2四个基本角色:

                1.Resource Owner:   资源的拥有者(个人理解使用client的人或。。。)

                2.Client:某一个具体的应用或app等等

                3.Authorization Server:授权中心服务(根据代码调试主要功能为:认证用户、认证client、询问用户-Resource Owner给client授权)

                4.Resource Server:  个人理解可能有偏差,谨慎!括号内为个人理解(client为一个套壳服务,真实的服务内容由Resource Server提供,所以需要使用accessToken去让resource server校验相关授权等是否足够)

        上述内容可能有误,如果有误请留言指正,oauth2的详细文档如下:

        https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2     

Springboot Oauth 的流程:

        

 

整合过程简介及相关处理:

        主要参考文档:

        https://docs.spring.io/spring-security/site/docs/current/reference/html5/

        实现功能:

                使用authorization server注册及校验client,完成authorization_code方式认证用户及授权,使用accesstoken换取用户信息

        主要代码版本信息: 

                springboot:        2.5.2

                spring-security-oauth2:        2.4.1.RELEASE

         关键点:

                针对于authorization server:

                        1) 用户认证(针对resource owner)和授权操作,都是在authorization server服务的页面中操作和完成,认证后签发authentication_code,client拿到code后携带scope询问是否进行授权,authorization server在收到用户页面操作的授权后,将成功授权的内容用access token存储并返回给client端,供client之后使用(认证和授权都在authentication server中操作可以使用户的认证信息和授权信息都可以从内存中方便的获取)

                        2)   使用@EnableAuthorizationServer注解开启配置,该注解会import两个核心配置文件,AuthorizationServerEndpointsConfiguration以及AuthorizationServerSecurityConfiguration,这两个配置文件会引入包括TokenEnpoint及AuthorizationEndpoint()在内的默认核心入口(eg:/oauth/authorize  ;  /oauth/token)

                        3)   两个配置修改的核心配置类,WebSecurityConfigAdapter以及AuthorizationServerConfigurerAdapter  

                        WebSecurityConfigAdapter这个配置文件的主要作用是做用户认证,普通的spring security项目的也会使用,用来配置用户(resource owner)认证的拦截器链(以下称呼为authentication链)

                        AuthorizationServerConfigurerAdapter用来做client认证链的配置(下文称呼为authorization链)

                        这两个配置文件内容,会让spring创建两个SecurityFilterChain,并注入到DelegatingFilterProxyRegistrationBean中(请求进入的security处理流程的Filter)

                        authentication链有两个需要关注的核心Filter,UsernamePasswordFilter,FilterSecurityInterceptor(UsernamePasswordFilter的功能:解析获取请求中的username,password并进行相关认证)

                        authorization链的两个需要关注的核心Filter为,BasicAuthenticationFilter,FilterSecurityInterceptor(BasicAuthenticationFilter的主要功能:获取header中的authentication信息,将加密后的信息解密,并校验client加密的信息和当前注册的client信息是否一致)

                        FilterSecurityInterceptor主要功能是确认当前请求中的用户是否已经通过认证,如果已经通过认证则继续执行,如果未通过认证那么进行相关拦截处理,譬如返回403页面等

                针对于client:

                        1)主要配置文件为WebSecurityConfigurerAdapter,在配置中使用oauth2Login()和oauth2Client()来开启拦截和登录操作

                        oauth2Client()主要用来注册当前的client信息,oauth2Login()用来拦截用户使用oauth2方式登录

                        2)关键类SecurityContextHolder,使用这个类,可以通过getContext().getAuthentication()获取实际用户信息

                针对于resource server:

                        未配置和使用,可能的核心配置为@EnableResourceServer,等之后有时间再调研一下

最后代码Demo地址:

        https://github.com/owisho/usercenter

                         

Spring Boot整合OAuth2,附详细注释 **授权服务器配置@author 向振华*/@Autowired@Autowired@Autowired@Autowired/**配置令牌端点(内置的/oauth/* 接口)的安全约束*/@Overridesecurity// 允许访问/oauth/token授权接口// 开启/oauth/check_token访问/**配置客户端详情*/@Override// 读DB客户端详情// 客户端详情配置。 阅读详情

相关推荐

springboot整合oauth2

springboot整合oauth2.0 文章目录springboot整合oauth2.01.概念2.springboot整合oauth2.0示例2.1SecurityConfig配置2.2资源服务器配置和授权服务器配置3.测试 环境 springboot1.5.x demo下载: 1.概念 客户应用: 通常是一个web或者手机,他需要访问用户的受保护资源 资源服务器::是一个web站点或者w...

2010yhh 2万+

如何在 Spring Boot 中使用 OAuth2

OAuth2 是一种流行的授权协议,用于授权第三方应用程序访问受保护的资源。OAuth2 协议定义了四种角色:资源所有者、客户端、授权服务器和资源服务器。资源所有者是资源的拥有者,客户端是请求访问资源的应用程序,授权服务器是授权客户端访问资源的服务器,资源服务器是托管受保护资源的服务器。客户端向授权服务器发送请求,请求授权访问某个资源。授权服务器向资源所有者询问是否授权客户端访问该资源。如果资源所有者授权客户端访问该资源,则授权服务器向客户端颁发访问令牌。

Java徐师兄的博客 6441

SpringBoot整合Oauth2快速入门(入坑)

文章目录前言一、什么是Oauth2?二、使用步骤1.引入Maven依赖2.授权服务器项目目录结构:1.授权服务器的security配置代码如下:2.授权服务器Authorize相关配置:1.@EnableAuthorizationServer 该注解切记需要配置哈。3.yml配置3.启动授权服务器后1.使用PostMan来获取Token令牌。这些参数很重要,还是POST请求方式。4.资源服务器模块搭建和配置1.目录结构如下:2.资源服务器配置1.代码如下:2.具体需要获取的数据3.如下请求资源带上Token

weixin_45982841的博客 1万+

Spring Boot 中的OAuth 2

Spring Boot 中的OAuth 2

探索er的博客 8433

SpringBoot 基于 OAuth2 统一身份认证流程详解

了解OAUTH2统一认证基本概念, 各种角色与协议流程, 了解OAUTH2支持的四种模式, 以及各种模式的不同应用场景。了解整体服务设计, 完成认证服务的搭建配置, 通过postman对功能进行验证, 实现TOKEN的申请与刷新功能。完成用户服务的配置的改进以及 Spring Security的集成, 核心类的处理实现;在整个项目中, 存在公用的地方, 要做统一处理, 比如统一异常和统一接口数据返回, 复用方便, 直观清晰, 便于维护与扩展。

专注基础架构领域 1万+

基于 Spring Cloud 2021 、Spring Boot 2.7、 OAuth2 的 RBAC 权限管理系统源码

基于 Spring Cloud 2021 、Spring Boot 2.7、 OAuth2 的 RBAC 权限管理系统源码

springboot学习笔记(十二) SpringBoot项目中使用SpringSecurity整合OAuth2设计项目API安全接口服务

OAuth是一个关于授权的开放网络标准,在全世界得到的广泛的应用,目前是2.0的版本。OAuth2在“客户端”与“服务提供商”之间,设置了一个授权层(authorization layer)。“客户端”不能直接登录“服务提供商”,只能登录授权层,以此将用户与客户端分离。“客户端”登录需要OAuth提供的令牌,否则将提示认证失败而导致客户端无法访问服务。下面我们就来讲解下SpringBoot项目中是...

拾荒者 2809

【Spreadsheet】香港规范结构设计电子表格库开发方案

深入理解香港本地规范特点和要求结合国际先进标准(Eurocode) 的技术内容考虑香港地理环境特殊性 (台风、地质等)建立完善的质量控制体系保持持续更新维护的能力。

hmywillstronger的博客 1361

阿里SpringSecurity+OAuth2实战全彩笔记,用户+案例+认证+框架,打造企业级认证与授权

对我们Java程序员来说,接触最多的安全框架之一应该就是Spring Security了,它囊括了身份认证的各种场景以及Web安全的大量知识,很多开发人员在面对这样的“庞然大物”的时候是无从下手的,但SpringBoot一经发布后,解决了Spring Security各种复杂的配置,Spring Security 在我们进行用户认证以及授予权限的时候,能直接通过各种各样的拦截器来控制权限的访问,从而实现安全。

老男孩的架构路 410

(53页PPT)新型智慧病房整体解决方案(附下载方式)

当前医疗场景存在三大核心矛盾:院内感染风险(如输液异常发现滞后)、信息孤岛现象(11类业务系统数据割裂)、管理效能不足(30%护理时间耗费在机械性工作)。实际案例显示,整体运营效率提升40%,患者满意度提高28个百分点,真正实现了"让技术有温度,让数据会说话"的价值理念。本文将从需求分析、技术架构、应用场景三个维度,深度剖析这份53页解决方案的创新价值与实践路径。床旁智能终端整合12项功能:包括体征自动采集(误差率<1%)、医嘱执行核对(100%条码校验)、智能床垫离床报警(响应时间3秒)等。

AI_data_cloud的博客 715

K8s认证文件丢失的应急处理与恢复策略

本文详细介绍了Kubernetes(K8s)认证文件丢失时的应急处理与恢复策略。从快速诊断问题范围到不同场景的临时解决方案,再到深度恢复方案(无损重建、部分重置、完全重建),提供了全面的操作指南。同时强调了生产环境中的防丢失设计、高可用集群的特殊处理以及日常运维建议,帮助运维人员有效应对认证文件丢失的紧急情况。

weixin_33743248的博客 327

真牛掰,阿里人用5个案例就彻底讲清了SpringSecurity安全框架

对我们Java程序员来说,接触最多的安全框架之一应该就是Spring Security了,但是很多粉丝后台跟我反馈说,工作上要用到的时候,到各大网站查阅资料博客,对此的描述很少,市面上含金量高点的相关资料更是难寻。所以本着好东西就是要拿出来的分享的原则,今天楼主正好借此机会把前段时间从阿里的朋友手上拿到的一套Spring Security实战全彩笔记分享给大家,看看是否能对大家有所帮助。

公众号:该用户快成仙了 588

CodeQL查询时遇到报错:A fatal error occurred: Could not process query metadata for...如何解决?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 1083

真牛掰!阿里人用5个案例就彻底讲清了SpringSecurity安全框架

为了不影响大家的阅读体验,就不把篇幅继续拉长了,需要完整版的小伙伴点这里——传送门。

weixin_50205273的博客 184

【系统架构设计师】预测试卷十:综合知识(75道选择题)

本文包含75道选择题,覆盖计算机系统、操作系统、网络、数据库、软件工程等核心知识域,其中系统架构设计与评估占比最高(19题)。题目难度稍高,注重灵活应用,题干全新且不与前8套重复。部分典型题目解析包括:计算机性能比较(CPU时间公式TLB/页表机制)、Cache写策略、流水线分支惩罚、管程条件变量、LRU近似算法、自旋锁适用场景、TCP字节流特性、Anycast应用、MVCC机制、分布式事务选型等。答案详解强调易错点,如性能比较需综合计算、TLB缺失不等于缺页、

数据知道的博客 478

OpenClaw人人养虾:接入即时通讯平台Zalo

通过 Zalo Official Account(OA,官方账号)API,可以将 OpenClaw 接入 Zalo,实现面向越南用户的自动化客服和互动。

王国平的博客 437

装逼 | 四份SpringSecurity笔记带你顺利玩转!

前言 据有关数据表明Spring Security在Java应用安全领域已经慢慢成为首先被推崇的安全解决方案。虽然它在Java应用安全领域所占比重越来越大,但大多数开发者面对Spring Security这样的“庞然大物”时无从入手,也因为对其不够了解而在实际项目中不敢轻易采用。如何学?怎么把它引入到项目里?已经是每一个开发人员需要考虑的问题。 为了能带大家进入Spring Security的新世界,也本着好东西就是要拿出来分享的原则!今天互联网雷锋(小编我)就把从阿里一位老哥手上得到的Spring S

如果频繁就私信一下呢 183

HyperLynx仿真(一)LineSim简单介绍

可以选择设置信号线与信号线之间默认的距离和信号线与同平面的平面之间的距离,这些设置根据工程师项目上经常使用的情况而设置,也可以选择不设置,在每次仿真时根据需要再对每一个仿真单独设置。仿真属性的设置对话框包含一般设置、 显示颜色设置、LineSim 设置、BoardSim 设置、 层叠默认设置、焊盘类型设置、仿真示波器默认设置、电路仿真器默认设置、电源完整性设置及高级设置。第一次使用HyperLynx软件时需要设置仿真相关环境,包括仿真软件的基本设置、模型库路径设置、仿真控制器控制、单位等。...

小幽余生不加糖 8948

爆肝! 阿里大佬熬夜 38 天整合的这份 Spring Security 源码手册我粉了

自从 Spring Boot、Spring Cloud 火起来之后,Spring Security 也跟着沾了一把光! 据有关数据表明Spring Security在Java应用安全领域已经慢慢成为首先被推崇的安全解决方案。虽然它在Java应用安全领域所占比重越来越大,但是重量级、配置繁琐、门槛高这些问题一直困扰着 Spring Security 的开发者,也让很多初学者望而却步。

老男孩的架构路 132

【Android性能优化】Android App 冻结与内存压缩:CachedAppOptimizer 源码级解析

本文基于 AOSP Android 16 源码,以 `CachedAppOptimizer` 为核心,深度解析 Android 对"后台缓存应用"的两大治理手段——**进程冻结(Freezer)**与**内存压缩(Compaction)**。文中完整还原冻结的 debounce 去抖动机制、`mEarliestFreezableTime` 的最早可冻结时刻算法、粘性冻结(Sticky Freeze)的语义,以及解冻时必须"先解 binder 再解进程"的顺序奥义。

weixin_44081096的博客 175

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Redis高频面试笔记:java源文件编译后生成的是什么文件

一、前言 k8s全称kubernetes,是目前大热的一个可移植容器的编排管理工具,像AWS、Azure、Google、阿里云、腾讯云等主流的公有云提供的都是基于k8s的容器服务,很多其他厂商也在努力跟进中,所以说“kubernetes”是目前容器行业中最为热门的也毫不为过! 但是大家都是知道的,kubernetes虽然比较热门,但是学习的门槛相对来说也是比较高的,所以这份笔记也是因此而生的,一经发布,瞬间上了周榜双Top1,已评钻级! 这份笔记有着以下两个重要的特点: 系统的讲解当前最流行的容器编排引

m0_57081140的博客 126

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

阿里P8架构师仅用五步教你如何搭建SpringSecurity安全框架

为了不影响大家的阅读体验,就不把篇幅继续拉长了,需要完整版的小伙伴私信“666”即可。

m0_67778103的博客 1115

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

新里程牌!阿里内部自爆SpringSecurity笔记,真狠

现在“打工人、打工魂、打工都是人上人......”,好像被洗脑了一样,我们都一样都是搬砖人,那么,搬砖是否就不值得一提呢?搬砖是不是就不会.......哈哈停止你的想法,该学习还是要学习,该跳槽还是要跳槽,公司在不断地更新,那么,作为一名程序员,是不是更要更新和升级自己的技术栈,只有系统地学习新的知识,才不会被淘汰,那么你对SpringSecurity了解多少呢? SpringSecurity是一个强大且高度可定制的安全框架,致力于为Java应用提供身份认证和授权。 Spring Security 是

如果频繁就私信一下呢 196

springboot2整合oauth2

1.背景 项目由springboot1.5.X升级到springboot2.0.0后,导致各组件API以及依赖包发生了变化。 完整项目demo:https://gitee.com/zkane/springboot2-oauth2.git 2.spring security Spring Security 从入门到进阶系列教程网址:http://www.spring4all.com/ar...

qq_37170583的博客 6万+

SpringBoot整合OAuth2

1. OAuth2.0介绍 OAuth(开放授权)是一个开放标准,允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方应用或分享他们数据的所有内容。OAuth2.0是OAuth协议的延续版本,但不向后兼容OAuth 1.0即完全废止了OAuth1.0。很多大公司如Google,Yahoo,Microsoft等都提供了OAUTH认证服务,这些都足以说明OAUTH标准逐渐成为开放资源授权的标准。Oauth协议目前发展到2.0版本,1.0版本过于复杂,2.0版本已得到

明平姚的博客 1万+
上一篇: csrf(cross site request forgery)攻击笔记
下一篇: 同一个网站两次Request不同session问题排查记录
owisho_java
博客等级 码龄14年 0粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值