天玺-vains
码龄6年
关注
提问 私信
  • 博客:155,006
    社区:3
    问答:871
    动态:1
    155,881
    总访问量
  • 39
    原创
  • 27,354
    排名
  • 309
    粉丝
  • 33
    铁粉
  • 学习成就

个人简介:路漫漫其修远兮,吾将上下而求索! 我在掘金的账号是“叹雪飞花”,兄弟们别误会。

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:四川省
  • 加入CSDN时间: 2018-10-08
博客简介:

云逸的博客

博客描述:
随缘记录问题与技术分享
查看详细资料
  • 原力等级
    成就
    当前等级
    5
    当前总分
    1,005
    当月
    14
个人成就
  • 获得218次点赞
  • 内容获得708次评论
  • 获得416次收藏
  • 代码片获得18,157次分享
创作历程
  • 3篇
    2024年
  • 29篇
    2023年
  • 1篇
    2022年
  • 7篇
    2021年
成就勋章
TA的专栏
  • Spring Authorization Server
    27篇
  • Spring Security
    27篇
  • Spring
    21篇
  • Vue3
    7篇
  • Spring Cloud
    2篇
  • SpringDoc
    4篇
  • SpringDataElasticsearch
    2篇
  • SpringCloudAlibaba遇到的问题记录
    1篇
兴趣领域 设置
  • Java
    javaspringmavenspring bootspring cloud
  • 网络与通信
    httphttps
  • 设计模式
    策略模式责任链模式
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

349人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Spring Authorization Server登出说明与实践

既然系统中有登录功能,那么必然也会有登出的需要,登出的效果一般都是清除认证相关的Session,同时也要让无效化,换而言之就是清除当前用户认证相关的状态,使用户在项目中回到未认证状态,因为表单登录以后存储在Session中的状态和请求携带访问后端时都代表着用户的认证信息,有了这些认证信息才代表着用户登录过,可以继续接下来的操作。本章基本上是理论与实验性的内容,编码内容很少,内容可能也会比较多,请大家耐心观看。
原创
发布博客 2024.12.03 ·
712 阅读 ·
15 点赞 ·
0 评论 ·
19 收藏

请教前后端分离的问题

答:

看起来像是在认证服务过滤器链配置的http.exceptionHandling中添加了authenticationEntryPoint配置的原因,因为defaultAuthenticationEntryPointFor是在没有其它异常处理配置的情况下生效的,但是添加了authenticationEntryPoint以后该配置就不会生效了

现在配置:

http.exceptionHandling((exceptions) -> exceptions
                                .defaultAuthenticationEntryPointFor(
//                                new LoginUrlAuthenticationEntryPoint("/login"),
                                        new LoginTargetAuthenticationEntryPoint("http://10.100.200.26:8000/login"),
                                        new MediaTypeRequestMatcher(MediaType.TEXT_HTML)
                                )
                                .authenticationEntryPoint(new BaseAuthenticationEntryPoint())
                                .accessDeniedHandler(new BaseAccessDeniedHandler())

修改后:


http.exceptionHandling((exceptions) -> exceptions
                                .defaultAuthenticationEntryPointFor(
//                                new LoginUrlAuthenticationEntryPoint("/login"),
                                        new LoginTargetAuthenticationEntryPoint("http://10.100.200.26:8000/login"),
                                        new MediaTypeRequestMatcher(MediaType.TEXT_HTML)
                                )

因为未认证就是LoginTargetAuthenticationEntryPoint处理的,所以不需要再添加未认证处理了,权限不足我看你也有在http.oauth2ResourceServer中配置,所以去除了这两个的配置。

LoginTargetAuthenticationEntryPoint只是针对于未登录跳转至登录页面的处理而已,登录失败并不在该类的责任范围内,所以没必要将两者结合,一个是在未登录时跳转至登录页面,一个是在登录失败后响应json(前后端分离)或重定向至登录(前后端不分离),这是两种不同的处理。

回答问题 2024.11.21

Spring Authorization Server基于Spring Session的前后端分离实现

  在一年多以前我出了两篇前后端分离的文章,分别是《Spring Authorization Server入门 (十二) 实现授权码模式使用前后端分离的登录页面》和《Spring Authorization Server入门 (十五) 分离授权确认与设备码校验页面》,最开始我的想法就是在OAuth2登录前生成一个id,在OAuth2登录期间所有请求都携带着这个id,特别是前端提交登录时,后端根据这个id存储认证信息,然后等登录以后重定向会授权申请时授权申请也会带这个这个id,这样就可以获取到前端提交登录以后
原创
发布博客 2024.10.29 ·
1553 阅读 ·
9 点赞 ·
19 评论 ·
15 收藏

Spring Authorization Server入门 (二十) 实现二维码扫码登录

全局根据二维码id将整个流程串联起来,前端轮询、app端扫码和登录确认都是通过二维码id来的,中间借助redis来缓存二维码的信息,以确保每个端都可以获取到二维码信息,这样就算集群部署也不影响。
原创
发布博客 2024.01.22 ·
2040 阅读 ·
24 点赞 ·
19 评论 ·
22 收藏

Spring Cloud Gateway集成SpringDoc,集中管理微服务API

本文目标为Spring Cloud微服务集成SpringDoc,在Spring Cloud Gateway中统一管理微服务的API,微服务上下线时自动刷新SwaggerUi中的group组。
原创
发布博客 2023.11.29 ·
2185 阅读 ·
3 点赞 ·
0 评论 ·
6 收藏

我的创作纪念日

这一系列文章在写的过程中也遇到了不少麻烦,但是也让我对这个框架更加熟悉了,各种之前没有注意到的细节都会在写文章的过程中发现,所以写文章对我自己的提升也是很大的。现在我更多的是会将博客平台当做一个记录平台,记录我学习到的一些新东西,比如新框架、新的内容等,平时就在不忙的时候记录一下,或者在晚上下班回家后记录。学习如逆水行舟,不进则退,共勉吧。
原创
发布博客 2023.11.23 ·
338 阅读 ·
3 点赞 ·
1 评论 ·
0 收藏

SpringDoc枚举字段处理与SpringBoot接收枚举参数处理

本期内容1. 添加SpringDoc配置展示枚举字段,在文档页面中显示枚举值和对应的描述2. 添加SpringMVC配置使项目可以接收枚举值,根据枚举值找到对应的枚举
原创
发布博客 2023.11.22 ·
1408 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

SpringDoc基础配置和集成OAuth2登录认证教程

现在大部分教程是在swagger-ui页面添加一个请求头,使用时先去获取一个token,然后再将获取的token填充至页面的token输入框内,如果是通过某个接口自己生成token的方式使用这种配置没什么太大问题,但是如果是通过OAuth2登录获取token时就比较麻烦,要填充token type和access token,所以在swagger-ui提供的页面中提供OAuth2登录的入口,OAuth2登录自动配置,一步到位。
原创
发布博客 2023.11.20 ·
1343 阅读 ·
0 点赞 ·
1 评论 ·
3 收藏

SpringBoot3.x最简集成SpringDoc-OpenApi

在SpringBoot低版本时一般使用Swagger扫描接口生成Json格式的在线文档,然后通过swagger-ui将Json格式的文档以页面形式展示文档。可惜遗憾的是swagger更新到3.0.0版本(springfox)后不更新了。
原创
发布博客 2023.11.20 ·
2739 阅读 ·
1 点赞 ·
4 评论 ·
8 收藏

Spring Authorization Server入门 (十九) 基于Redis的Token、客户端信息和授权确认信息存储

本文对应的是文档中的How-to: Implement core services with JPA,文档中使用Jpa实现了核心的三个服务类:授权信息、客户端信息和授权确认的服务;本文会使用Spring Data Redis参考文档来添加新的实现。在这里也放一下文档中的一句话: 本指南的目的是为您自己实现这些服务提供一个起点,以便您可以根据自己的需要进行修改。
原创
发布博客 2023.10.29 ·
2352 阅读 ·
6 点赞 ·
15 评论 ·
5 收藏

Spring Authorization Server优化篇:Redis值序列化器添加Jackson Mixin,解决Redis反序列化失败问题

从上边的配置可以看出Spring对于三方框架内部没有默认构造器的类的反序列化支持还是挺好的,如果集成其它框架时遇到这种情况时就可以仿照Security框架提供的Mixin类实现一个自己的Mixin类以支持反序列化,当然也可以找找在框架中是否有类似的Jackson2Module类;当自己封装一个starter时也可以提供Jackson2Module类来映射类,不过这个就按照个人的喜好来了,自己封装自由度很高的。
原创
发布博客 2023.09.24 ·
1210 阅读 ·
0 点赞 ·
5 评论 ·
4 收藏

Spring Authorization Server入门 (十八) Vue项目使用PKCE模式对接认证服务

一直都有提到PKCE流程是授权码流程的扩展,通过这两篇文章也可以看出两种流程的授权申请流程基本是一样的,只不过PKCE将客户端密钥换成了和,虽然稍微麻烦了些,但是安全性也提高了很多;至于移动app或者pc端应用对接的流程也是一样的,只不过是将回调地址换成了URLSchema,其它都是一样的;测试的流程与授权码模式基本一致,这里就不带大家测试了,读者可自行测试,然后观察请求跳转情况。
原创
发布博客 2023.09.17 ·
1151 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

Spring Authorization Server入门 (十七) Vue项目使用授权码模式对接认证服务

在本例中为授权代码流程。 授权码流程的步骤如下:客户端通过重定向到授权端点来发起 OAuth2 请求。如果用户未通过身份验证,授权服务器将重定向到登录页面。 身份验证后,用户将再次重定向回授权端点。如果用户未同意所请求的范围并且需要同意,则会显示同意页面。一旦用户同意,授权服务器会生成一个并通过重定向回客户端。客户端通过查询参数获取并向Token Endpoint发起请求。
原创
发布博客 2023.09.17 ·
1894 阅读 ·
5 点赞 ·
8 评论 ·
3 收藏

Spring Authorization Server常见问题解答(FAQ)

文章会记录可能遇到的问题,并给出一个解决方案,目前框架异常提示信息不完善,所以出现问题后很难排查,这里给出一些解决方案,让大家少走一些弯路;本篇文章持续更新中,欢迎各位读者指正、补充和完善,谢谢大家
原创
发布博客 2023.09.17 ·
2108 阅读 ·
4 点赞 ·
25 评论 ·
2 收藏

Spring Authorization Server入门 (十六) Spring Cloud Gateway对接认证服务

之前虽然单独讲过Security Client和Resource Server的对接,但是都是基于Spring webmvc的,Gateway这种非阻塞式的网关是基于webflux的,对于集成Security相关内容略有不同,且涉及到代理其它微服务,所以会稍微比较麻烦些,今天就带大家来实现Gateway网关对接OAuth2认证服务。
原创
发布博客 2023.08.27 ·
5536 阅读 ·
4 点赞 ·
40 评论 ·
11 收藏

Spring Authorization Server入门 (十五) 分离授权确认与设备码校验页面

在之前的文章(实现授权码模式使用前后端分离的登录页面)中实现了前后端分离的登录页面,但这篇文章中只分离了登录页面,鉴于部分读者好奇授权确认页面分离的实现,就实现一下授权确认页面的分离,同时设备码流程的授权确认页面与授权码流程的授权确认页面是同一个,这里也需要兼容一下,还有就是设备码流程中有一个校验设备码的页面,这里也需要分离出来。
原创
发布博客 2023.08.01 ·
1982 阅读 ·
1 点赞 ·
44 评论 ·
3 收藏

Spring Authorization Server入门 (十四) 联合身份认证添加微信登录

虽然这次是用测试号对接的,但是实际上开放平台提供的扫码登录也是这个流程,直接替换appid和app secret为开放平台申请的应该能直接使用;另外需要注意的是获取access_token时可能会返回unionid,这是在同一个微信开放平台账号下拥有多个移动应用、网站应用和公众账号,获取用户信息后用户信息中的openid可能不同,但是unionid是相同的,可以通过unionid区分用户。所以可以在三方用户表中多加一个字段来存放unionid或者openid。
原创
发布博客 2023.07.29 ·
2377 阅读 ·
2 点赞 ·
36 评论 ·
5 收藏

Spring Authorization Server入门 (十三) 实现联合身份认证,集成Github与Gitee的OAuth登录

什么是联合身份认证? 通过Spring Security OAuth2 Client(Login)模块集成第三方登录至自己的认证服务中,使用联合身份认证只需要请求认证服务,不通过前端来跳转三方的授权申请链接,而是统一通过认证服务来跳转,只需要维护Spring Authorization Server中身份认证提供商的关系即可。
原创
发布博客 2023.07.22 ·
2917 阅读 ·
5 点赞 ·
55 评论 ·
9 收藏

Spring Authorization Server优化篇:持久化JWKSource,解决重启后无法解析AccessToken问题

根据上边的分析得出解决方案,在配置JWKSource之前先从redis中尝试获取一下,获取不到就生成并存入redis;获取到直接解析并生成一个JWKSet;根据该逻辑修改AuthorizationConfig类中的JWKSource配置。
原创
发布博客 2023.07.12 ·
1733 阅读 ·
4 点赞 ·
27 评论 ·
6 收藏

Spring Authorization Server入门 (十二) 实现授权码模式使用前后端分离的登录页面

今天的主题就是使用单独部署的登录页面替换认证服务器默认的登录页面(前后端分离时使用前端的登录页面),目前在网上能搜到的很多都是理论,没有很好的一个示例,我就按照我自己的想法写了一个实现,给大家提供一个思路,如果有什么问题或者更好的想法可以在评论区提出,谢谢。
原创
发布博客 2023.07.10 ·
8914 阅读 ·
16 点赞 ·
91 评论 ·
32 收藏
加载更多