1 package com.supwisdom.institute.backend.admin.aggr.configuration;
3 import javax.net.ssl.SSLContext;
4 import javax.net.ssl.SSLSocketFactory;
6 import org.apache.http.conn.ssl.NoopHostnameVerifier;
7 import org.apache.http.ssl.SSLContextBuilder;
8 import org.apache.http.ssl.SSLContexts;
9 import org.springframework.beans.factory.annotation.Value;
10 import org.springframework.context.annotation.Bean;
11 import org.springframework.context.annotation.Configuration;
12 import org.springframework.util.ResourceUtils;
15 import lombok.extern.slf4j.Slf4j;
19 public class FeignClientConfiguration {
22 public Client feignClient(
23 @Value("${cas-server-sa-api.client-auth.enabled:false}") boolean enabled,
24 @Value("${cas-server-sa-api.client-auth.key-password:}") String keyPassword,
25 @Value("${cas-server-sa-api.client-auth.key-store:}") String keyStore,
26 @Value("${cas-server-sa-api.client-auth.key-store-password:}") String keyStorePassword,
27 @Value("${cas-server-sa-api.client-auth.trust-store:}") String trustStore,
28 @Value("${cas-server-sa-api.client-auth.trust-store-password:}") String trustStorePassword) {
31 return new Client.Default(null, null);
34 if (keyStore == null || keyStore.isEmpty()) {
35 return new Client.Default(null, null);
38 SSLContextBuilder sslContextBuilder = SSLContexts.custom();
39 if (trustStore == null || trustStore.isEmpty()) {
42 // .loadTrustMaterial(TrustAllStrategy.INSTANCE)
44 ResourceUtils.getFile(trustStore),
45 trustStorePassword.toCharArray()
51 ResourceUtils.getFile(keyStore),
52 keyStorePassword.toCharArray(),
53 keyPassword.toCharArray());
55 SSLContext sslContext = sslContextBuilder.build();
57 SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
59 Client trustSSLSockets = new Client.Default(sslSocketFactory, new NoopHostnameVerifier());
60 log.info("feignClient load with ssl.");
61 return trustSSLSockets;
62 } catch (Exception e) {
67 return new Client.Default(null, null);