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

如何配置InstancePrincipalsAuthenticationDetailsProvider以清除代理?

解决InstancePrincipalsAuthenticationDetailsProvider代理清除后502错误的可行方案

问题背景

尝试配置InstancePrincipalsAuthenticationDetailsProvider并清除代理,先后尝试以下两种方法均未解决,仍收到502错误:

  1. 实例化前清除JVM代理设置:
System.setProperty("http.proxyHost","");  
System.setProperty("http.proxyPort","");  
InstancePrincipalsAuthenticationDetailsProvider instancePrincipalsAuthenticationDetailsProvider = InstancePrincipalsAuthenticationDetailsProvider.builder().build();    
  1. 通过additionalFederationClientConfigurator配置禁用代理:
ClientConfigurator clientConfigurator = builder -> {
ProxyConfiguration proxyConfiguration =
ProxyConfiguration.builder().proxy(Proxy.NO_PROXY).build();  
builder.property(StandardClientProperties.PROXY, proxyConfiguration);
};

instancePrincipalsAuthenticationDetailsProvider =
InstancePrincipalsAuthenticationDetailsProvider.builder().additionalFederationClientConfigurator(clientConfigurator)
.build();

可行代码示例

问题根源通常是仅处理了HTTP代理未覆盖HTTPS代理,或仅配置了联邦客户端未覆盖认证客户端。以下是完整解决方案:

// 清除JVM全局HTTP/HTTPS代理设置(覆盖所有可能的代理属性)
System.setProperty("http.proxyHost", "");
System.setProperty("http.proxyPort", "");
System.setProperty("https.proxyHost", "");
System.setProperty("https.proxyPort", "");
System.setProperty("http.nonProxyHosts", "");
System.setProperty("https.nonProxyHosts", "");

// 构建通用无代理配置器,同时作用于联邦客户端和认证客户端
ClientConfigurator noProxyConfigurator = builder -> {
    // 明确指定不使用任何代理
    ProxyConfiguration proxyConfig = ProxyConfiguration.builder()
            .proxy(Proxy.NO_PROXY)
            .build();
    builder.property(StandardClientProperties.PROXY, proxyConfig);
    // 禁用自动代理检测,避免读取系统或环境中的代理配置
    builder.property(StandardClientProperties.PROXY_AUTODETECT, false);
};

// 构建认证提供者,同时配置两个客户端的代理规则
InstancePrincipalsAuthenticationDetailsProvider authProvider = InstancePrincipalsAuthenticationDetailsProvider.builder()
        .additionalFederationClientConfigurator(noProxyConfigurator)
        .additionalAuthenticationClientConfigurator(noProxyConfigurator)
        .build();

关键说明

  • 必须同时清除https.proxyHost和https.proxyPort,云服务认证接口通常使用HTTPS协议;
  • 同时配置additionalFederationClientConfigurator和additionalAuthenticationClientConfigurator,确保认证流程中涉及的两个客户端都禁用代理;
  • 禁用自动代理检测可避免程序读取环境变量或系统默认的代理配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 13:14:57