【问题标题】:How to set HostnameVerifier in Feign-Client from spring-cloud-netflix-feign如何从 spring-cloud-netflix-feign 在 Feign-Client 中设置 HostnameVerifier
【发布时间】:2018-02-01 23:40:47
【问题描述】:

我正在尝试设置我的 Spring Cloud Feign Client 以使用自定义 HostnameVerifier。我需要自定义 HostnameVerifier 来忽略证书问题。我该怎么做?

这是我当前的配置:

@FeignClient(name = "AccountSettingsClient", url = "${account.settings.service.url}", decode404 = true,
        configuration = AccountSettingsClientConfig.class, fallbackFactory = AccountSettingsClientFallbackFactory.class)
public interface AccountSettingsClient {
    @RequestMapping(method = RequestMethod.GET, value = "/settings/{uuid}")
    AccountSettings accountSettings(@PathVariable("uuid") String uuid);
}

@Component
@Slf4j
class AccountSettingsClientFallbackFactory implements FallbackFactory<AccountSettingsClient> {
    @Override
    public AccountSettingsClient create(Throwable cause) {
        return uuid -> {
            log.warn("Falling back to null.", cause);
            return null;
        };
    }
}

@Configuration
@RequiredArgsConstructor
@EnableConfigurationProperties(SomeProperties.class)
@EnableFeignClients
public class AccountSettingsClientConfig {
     private final SomeProperties someProperties;

     @Bean
     RequestInterceptor oauth2FeignRequestInterceptor() {
         return new OAuth2FeignRequestInterceptor(new 
            DefaultOAuth2ClientContext(), resource());
     }
}

【问题讨论】:

    标签: java spring spring-cloud-netflix spring-cloud-feign


    【解决方案1】:

    默认情况下,会创建一个带有 HttpURLConnection 的 LoadBalancerFeignClient,并且不能覆盖它的 HostnameVerifier 设置。为了覆盖它,请选择另一个客户端,如 OkHttp 或 Apache Http 客户端,添加对应的 maven 依赖项,然后您可以使用所有设置覆盖客户端。

    我选择了 OkHttpClient 并添加到我的AccountSettingsConfig follow bean:

    @Bean
    public okhttp3.OkHttpClient okHttpClient() {
        return new OkHttpClient.Builder().hostnameVerifier((s, sslSession) -> true)
                .build();
    }
    

    【讨论】:

      猜你喜欢
      • 2016-06-21
      • 2015-11-12
      • 2015-10-12
      • 1970-01-01
      • 2017-01-20
      • 2015-08-24
      • 2016-12-17
      • 2017-07-23
      • 2018-06-14
      相关资源
      最近更新 更多