
Oauth2
文章平均质量分 90
oauth2认证
歪桃
一只往上爬的小咸鱼
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SpringBoot3集成Oauth2.1——10重启程序Token失效(RSA持久化)
每次颁发的token,在重启以后,有小伙伴可能说想,是不是token使用内存存储,重启以后token就没了,其实不是这样,这个和之前的老版本的Oauth2不一样。2.资源服务器的JWKSource会丢失之前的 RSA 公钥,无法验证重启前签发的 Token(找不到对应的验证密钥)1.授权服务器会重新生成新的 RSA 密钥对,导致之前用旧密钥签名的 Token 全部失效(验证时签名不匹配);最后,在程序运行的相对根目录就会产生密钥对文件。,因此,也就是我们上面所说的问题。如下所示,每次我们都是。原创 2025-08-25 11:46:15 · 324 阅读 · 0 评论 -
SpringBoot3集成Oauth2.1——9自定义异常信息
log . error("AccessDeniedHandler异常:{}" , accessDeniedException);} }log . error("AccessDeniedHandler异常:{}" , accessDeniedException);} }log . error("AccessDeniedHandler异常:{}" , accessDeniedException);} }原创 2025-08-22 12:33:22 · 982 阅读 · 0 评论 -
SpringBoot3集成Oauth2.1——8自定义认证模式(密码模式)
由于早些年,我们使用的oauth版本是:spring-cloud-starter-oauth2,针对该版本的Oauth2升级,从SpringBoot2.1-》2.2-》2.3-》2.4-》2.5-》2.6-》2.7一路是荆棘之路。以下版本为:SpringBoot2.7.11的时候部分代码,基本上来说,几乎百分之95以上代码都过时了。但是最为恐怖的存在是:我在里面扩展了很多的认证方式,比如手机验证、指纹验证、用户证书验证等等等。而这些扩展的认证方式的代码,都是参照密码模式来实现的。当然如果从头看我博客原创 2025-08-22 09:45:09 · 1079 阅读 · 0 评论 -
SpringBoot3集成Oauth2.1——7数据库存储用户信息
在之前的客户端中,SpringBoot3集成Oauth2.1——6数据库存储客户端信息,我们遇到一个密码自动升级的问题。这里我们为了后面用户也存储到数据库,进行加密时,做一个改动在SecurityConfig中,添加加密方式。保存客户端信息时,进行加密。此时,直接保存到数据库的密文,就没有前缀了。备注:这样做的目的是,避免客户端自动升级的加密和用户名的加密存在冲突,导致登录认证时,解密失败。为了方便,这里isAccountNonExpired、isAccountNonLocked、isCred原创 2025-05-26 15:39:39 · 735 阅读 · 0 评论 -
SpringBoot3集成Oauth2.1——6数据库存储客户端信息
获取SQL文件oauth2-authorization-schema.sqloauth2-authorization-consent-schema.sqloauth2-registered-client-schema.sql2添加客户端信息2.1SQL语句添加(不推荐)如下所示,可以提看到,其他的一些字段,基本都是我们知道的字符串,但是其中client_settings,则很难知道填写什么。下面是一个示例:token_settings的示例,这种配置方式是挺奇葩的,不知道那天官方开始原创 2025-05-26 12:40:44 · 1138 阅读 · 0 评论 -
SpringBoot3集成Oauth2.1——5资源地址配置
如下所示,代码配置了两个,过滤器,一个是资源保护,一个是不保护。先说上述代码的结果访问http://127.0.0.1:18080/doc.html是正常的,这是期望的访问http://127.0.0.1:18080/sysOrg/info/page,会被401,这也是期望的,因为我携带无效token但是我访问http://127.0.0.1:18080/sysOrg/info/list,给我从定向到登录页面了什么意思嗯?就是说,下面的配置中,配置的其他静态资源,例如swagger页面,是能访问原创 2025-05-23 16:42:36 · 1230 阅读 · 0 评论 -
SpringBoot3集成Oauth2.1——4集成Swagger/OpenAPI3
不难发现,确实有knife4j集成oauth的,不过从代码示例来看,Swagger还是2.x版本,而oauth2也是老版本以前的。折腾了一天,以下是参考的资料和文档(主要原因还是目前很多框架组件,其实对SprignBoot3还不是特别兼容,java8 + boot2是真的钉子户)但是吧,这么多接口,咱总不能一个一个的加吧?在全局参数的地方,我们是看不到添加认证参数的,只有header和query。这时候,我们将我们从其他地方获取到的token,放入到这里,记得前面添加Bearer。此时,就能正常请求了。原创 2025-05-23 11:44:19 · 758 阅读 · 0 评论 -
SpringBoot3集成Oauth2.1——3access_token使用
当然开玩笑的,主要还是自己懒,不想新开一个服务,但是不可否认,对于大部分国内公司、组织、单位、政企来说,以我这个在国企央企呆了8年的人来说,大部分非互联网项目,有些项目,那个微服务的总数,比用户数都多,我接触过一个科技项目,更夸张,微服务的个数,比系统一年的总访问此处加起来都多。虽然我们知道,这个肯定访问不成功,但是,我们也得明白,页面返回的是登录页面,这明显也是不对到了,应该是返回401才对,因为我们是属于访问未授权的接口。此时token有误,或者直接没传,例如下面的No Auth,就是返回401。原创 2025-05-21 15:36:42 · 1245 阅读 · 0 评论 -
Spring Security oauth2(三)使用数据库存储客户端信息和用户信息
文章目录1.使用数据库方式存储客户端信息1.1.准备数据库及脚本1.2.配置数据库连接1.3.修改configure(ClientDetailsServiceConfigurer clients) 方法2.使用数据库方式存储用户信息在我们之前的文章中Spring Security oauth2(一)快速入门,搭建授权服务器我们使用Spring Security oauth2简单的构建了一个授权服务器,不过有一些问题,我们为了快速入门,我们将用户的信息和客户端信息都是直接构建在内存中,这样做存在诸多问原创 2021-12-02 17:45:28 · 11685 阅读 · 4 评论 -
Spring Security oauth2(一)快速入门,搭建授权服务器
在进行Spring Security oauth2快速入门之前,我们先来了解一些基本的概念1.基本概念1.1.OAuth2.0是什么?1.1.1.什么是OAuthOAuth是一种开放协议, 允许用户让第三方应用以安全且标准的方式获取该用户在某一网站,移动或者桌面应用上存储的秘密的资源(如用户个人信息,照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。1.1.2.OAuth2.0和OAuth的关系OAuth协议(RFC5849)作为一个指导性文档发布,是一个小社区的工作成果。OAu原创 2021-08-02 21:37:49 · 17121 阅读 · 6 评论 -
Spring Security oauth2(二)使用get方式请求oauth2默认的认证接口/oauth/token
在我们上篇文章中,我们作为快速入门pring Security oauth2(一)快速入门,搭建授权服务器讲了4中授权模式,接下来的篇章中,我们将会逐步的去一个一个问题解决,并且去扩展接下来我们将要解决的第一个问题,就是关于于oauth2默认的认证接口。1.观察oauth2认证接口地址观察我们的每一种授权模式的请求地址。我们不难发现,请求地址就是如下两个。授权码模式,我们请求了如下地址http://127.0.0.1:8080/oauth/authorizehttp://127.0.0.1:原创 2021-11-23 18:11:47 · 18297 阅读 · 1 评论 -
SpringBoot3集成Oauth2.1——1(/oauth2/token方法的升级踩坑)
备注:本文适用于你在SpringBoot2.7以前集成过oauth2,并且项目已经正式投入使用的情况,否则,我建议你直接学习或者找资料学习最新的oauth2集成,就不要纠结于老版本的oauth2。原因:Spring Security 5.x和Spring Security6.x,我个人认为,你可以理解为两套不同的框架,他们仅仅只是名字差不多而已,升级难度在于,旧系统的登录认证已经在使用了,尤其是已经介入很多子系统时,这时候需升级需要适配原来的认证,不然会导致子系统需要重新单点登录。原创 2025-05-09 13:38:00 · 1696 阅读 · 0 评论 -
Spring Security oauth2(四)密码模式源码解析
前言,因为最近的项目是用Spring Security Aauth2来实现用户授权平台,本来想有时间的时候把整个流程写一下博客,实在抽不出时间,刚好有水友用密码模式有问题,就顺便把这密码模式整理下。1.Oauth2原理OAuth2.0是一种授权机制,正常情况,不使用OAuth2.0等授权机制的系统,客户端是可以直接访问资源服务器的资源的,为了用户安全访问数据,在访问中间添加了Access Token机制。客户端需要携带Access Token去访问受到保护的资源。所以OAuth2.0确保了资源不被恶意客原创 2021-04-16 17:45:57 · 9152 阅读 · 1 评论 -
SpringBoot3集成Oauth2.1——2快速入门
请求参数:body-x-www-form-urlencoded中,将grant_type替换为refresh_token,然后再加上我们的refresh_token参数,如下所示(目前发现有个问题,refresh_token刷新以后,从新返回新的token和旧的token里面的refresh_token参数并不变,理论上就会产生,一直用refresh_token获取新的token)。,要么依赖冲突,要么直接某些类,方法直接被移除,要么方法过时。Username:客户端ID,oidc-client。原创 2025-05-21 11:35:52 · 859 阅读 · 0 评论