You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Authorization无法访问资源服务器问题求助

问题排查方案

根据你提供的错误栈和操作流程,核心问题是资源服务器请求授权服务器的OIDC配置端点时,得到的是HTML内容而非预期的JSON,导致JWT解码器初始化失败。以下是具体排查步骤:


1. 验证授权服务器的OIDC配置端点

直接访问授权服务器的OIDC配置端点:

http://127.0.0.1:9500/.well-known/openid-configuration
  • 如果返回HTML页面(比如404、登录页),说明授权服务器未正确暴露该端点,或者配置有误。
  • 正常情况应返回包含jwks_uri、issuer等字段的JSON数据。

2. 检查资源服务器的Issuer配置

确认资源服务器配置文件(application.properties/application.yml)中,JWT issuer配置是否正确:

# application.properties示例
spring.security.oauth2.resourceserver.jwt.issuer-uri=http://127.0.0.1:9500
  • 该URI必须和授权服务器实际签发Token的issuer完全一致,且能被资源服务器正常访问。

3. 检查授权服务器的端点暴露配置

如果使用Spring Authorization Server,需确保OIDC相关端点允许匿名访问:

@Bean
public SecurityFilterChain authServerSecurityFilterChain(HttpSecurity http) throws Exception {
    OAuth2AuthorizationServerConfiguration.applyDefaultSecurity(http);
    http.getConfigurer(OAuth2AuthorizationServerConfigurer.class)
        .oidc(Customizer.withDefaults()); // 启用OIDC功能
    
    // 允许匿名访问配置端点
    http.authorizeHttpRequests(auth -> auth
        .requestMatchers("/.well-known/openid-configuration", "/oauth2/jwks")
        .permitAll()
        .anyRequest().authenticated());
    return http.build();
}

4. 确认授权服务器是否启用OIDC功能

如果授权服务器未启用OIDC提供者支持,资源服务器无法通过自动发现机制获取JWT验证配置:

  • 新版Spring Authorization Server需通过OAuth2AuthorizationServerConfiguration启用OIDC;旧版需添加@EnableAuthorizationServer注解。

5. 排查网络/端口访问问题

  • 确认资源服务器所在环境能正常访问http://127.0.0.1:9500,容器化部署需检查端口映射是否正确。
  • 检查9500端口是否被授权服务器正常占用,未被其他进程抢占。

内容的提问来源于stack exchange,提问作者Andelic47 Aaron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 18:52:34