spring security oauth2 中两个endpoint的注入来源

本文深入探讨了在使用XML配置方式整合OAuth2时,如何通过Spring框架实现TokenEndpoint和AuthorizationEndpoint的注入与请求映射。揭示了在未直接配置的情况下,Spring内部如何通过AuthorizationServerBeanDefinitionParser解析配置文件并注入必要组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公司项目使用xml配置的方式整合oauth2,在阅读源码,跟踪整个授权跟获取令牌的过程中,对比xml的配置文件,并没有找到有配置配了两个endpoint的注入:TokenEndpoint 和 AuthorizationEndpoint。这两个类分别对应我们oauth2中两个重要的请求:/oauth/token 和 /oauth/authorize。我们oauth的功能都围绕着这个给url展开,这里不禁疑惑,配置文件没有注入这两个bean,那请求是如何映射到这两个bean的呢?

拿其中一个来说:TokenEndpoint。如下图,TokenEndpoint 类上有一个注解 @FrameworkEndpoint,我们姑且把它当作@controller ,可以使用相关的注解,这里,获取令牌入口 /oauth/token 就是在这个类配置的。这里就解决的请求映射到bean的问题。

但是还有一个问题,仔细看它的父类(下图),并没有类似@autowire 的注入图中的红框部分,那么红框中的几个bean是怎么注入进去的呢?

这里就比较隐秘了,是在AuthorizationServerBeanDefinitionParser解析配置文件 oauth2:authorization-server 标签时,设置需要注入的属性,然后让spring来注入。如下图:

 

以上是使用xml配置的方式,比较难跟踪,如果使用java配置,比如spring boot的时候,是在配置类AuthorizationServerEndpointsConfiguration中初始化的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值