ivan_070 2024-07-05 21:14 采纳率: 100%
浏览 3
已结题

oauth-client获取token成功但是还是跳转至授权

pom


<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-oauth2-client</artifactId>
        </dependency>

application.properties

spring:
  security:
    oauth2:
      client:
        registration:
          my:
            client-id: 111
            client-secret: 222
            authorization-grant-type: authorization_code
            redirect-uri: 333
            client-authentication-method: client_secret_post
        provider:
          my:
            authorization-uri: 444
            token-uri: 555

其他没有代码,只是默认的SpringsecurityApplication.java

启动后访问http://localhost:8080/test后,自动跳转至授权页面,授权后debug源码org.springframework.security.oauth2.client.web.OAuth2AuthorizationCodeGrantFilter.java,发现授权成功,获得到了token相关数据,继续执行后页面又跳转到授权页面了。

请问这是什么问题。

  • 写回答

1条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-07-05 21:14
    关注

    引自免费微信小程序:皆我百晓生

    根据您提供的配置和描述,您在使用Spring Boot的OAuth 2.0客户端进行身份验证时遇到了问题。尽管您成功获取了token,但在完成授权过程后似乎再次跳转到了授权页面。这可能是由几个不同的原因造成的。下面是一些可能的解决方案和建议:

    1. 检查OAuth配置:确保您的OAuth配置是正确的,特别是关于授权服务器和客户端的信息。确认authorization-uritoken-uri是否指向正确的地址,以及client-idclient-secret是否正确配置。此外,确认redirect-uri是否与授权服务器上的配置匹配。
    2. 检查重定向逻辑:查看您的应用程序中的重定向逻辑是否正确实现。在OAuth流程中,一旦获得token,应用程序应该正确地处理重定向,以便在用户完成授权后返回到正确的页面。确保您的应用程序正确处理了这些重定向。
    3. 调试应用程序:根据您提到的调试信息,查看OAuth2AuthorizationCodeGrantFilter.java中的代码逻辑是否正确执行。检查在授权成功后是否正确地处理了token响应,并确保应用程序没有意外地再次触发授权请求。
    4. 查看日志:检查应用程序的日志输出以获取更多详细信息。这可能会提供有关问题的线索,例如网络请求、异常或其他错误消息。
    5. 更新依赖和Spring Boot版本:确保您使用的Spring Boot版本与Spring Security OAuth客户端依赖兼容。有时候,使用不兼容的版本可能会导致意外的行为。尝试更新到最新的稳定版本,并查看问题是否得到解决。
    6. 审查安全性配置:检查Spring Boot应用程序的安全性配置。确保没有配置错误导致意外地阻止了正确的OAuth流程。

    如果这些解决方案都没有解决问题,建议您创建一个简单的示例项目,只包含基本的OAuth配置和必要的代码,以便更容易地隔离和诊断问题。此外,您也可以考虑查阅相关的官方文档或社区论坛,看看是否有其他开发者遇到了类似的问题并提供了解决方案。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 7月30日
  • 已采纳回答 7月22日
  • 创建了问题 7月5日

悬赏问题

  • ¥15 数据量少可以用MK趋势分析吗
  • ¥15 使用VH6501干扰RTR位,CANoe上显示的错误帧不足32个就进入bus off快慢恢复,为什么?
  • ¥15 大智慧怎么编写一个选股程序
  • ¥100 python 调用 cgps 命令获取 实时位置信息
  • ¥15 两台交换机分别是trunk接口和access接口为何无法通信,通信过程是如何?
  • ¥15 C语言使用vscode编码错误
  • ¥15 用KSV5转成本时,如何不生成那笔中间凭证
  • ¥20 ensp怎么配置让PC1和PC2通讯上
  • ¥50 有没有适合匹配类似图中的运动规律的图像处理算法
  • ¥15 dnat基础问题,本机发出,别人返回的包,不能命中