11package uk .nhs .adaptors .gp2gp .common .configuration ;
22
3+ import java .net .URI ;
34import java .security .KeyStore ;
45import java .security .cert .CertificateException ;
56import java .security .cert .X509Certificate ;
1112
1213import org .springframework .beans .factory .annotation .Autowired ;
1314import org .springframework .stereotype .Component ;
14-
15- import com .amazonaws .services .s3 .AmazonS3 ;
16- import com .amazonaws .services .s3 .AmazonS3URI ;
17- import com .amazonaws .services .s3 .model .GetObjectRequest ;
15+ import software .amazon .awssdk .core .ResponseInputStream ;
16+ import software .amazon .awssdk .services .s3 .S3Uri ;
17+ import software .amazon .awssdk .services .s3 .model .GetObjectResponse ;
18+ import software .amazon .awssdk .services .s3 .S3Client ;
19+ import software .amazon .awssdk .services .s3 .model .GetObjectRequest ;
1820
1921import edu .umd .cs .findbugs .annotations .SuppressFBWarnings ;
2022import lombok .NoArgsConstructor ;
2729@ NoArgsConstructor
2830public class CustomTrustStore {
2931 @ Autowired (required = false )
30- private AmazonS3 s3Client ;
32+ private S3Client s3Client ;
3133
3234 @ SneakyThrows
3335 public void addToDefault (String trustStorePath , String trustStorePassword ) {
3436 final X509TrustManager defaultTrustManager = getDefaultTrustManager ();
35- final X509TrustManager customTrustManager = getCustomDbTrustManager (new AmazonS3URI (trustStorePath ), trustStorePassword );
37+ final var s3Uri = s3Client .utilities ().parseUri (URI .create (trustStorePath ));
38+ final X509TrustManager customTrustManager = getCustomDbTrustManager (s3Uri , trustStorePassword );
3639 X509TrustManager combinedTrustManager = new CombinedTrustManager (customTrustManager , defaultTrustManager );
3740
3841 SSLContext sslContext = SSLContext .getInstance ("TLS" );
@@ -56,15 +59,15 @@ private X509TrustManager getDefaultTrustManager() {
5659
5760 @ SneakyThrows
5861 @ SuppressFBWarnings ("RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE" )
59- private X509TrustManager getCustomDbTrustManager (AmazonS3URI s3URI , String trustStorePassword ) {
62+ private X509TrustManager getCustomDbTrustManager (S3Uri s3Uri , String trustStorePassword ) {
6063 TrustManagerFactory trustManagerFactory = TrustManagerFactory .getInstance (TrustManagerFactory .getDefaultAlgorithm ());
6164 trustManagerFactory .init ((KeyStore ) null );
6265
63- LOGGER .info ("Loading custom KeyStore from '{}'" , s3URI .toString ());
64- try ( var s3Object = s3Client . getObject ( new GetObjectRequest ( s3URI . getBucket (), s3URI . getKey ()));
65- var content = s3Object . getObjectContent ( )) {
66+ LOGGER .info ("Loading custom KeyStore from '{}'" , s3Uri .toString ());
67+ final var getObjectRequest = GetObjectRequest . builder (). bucket ( s3Uri . bucket (). orElseThrow ()). key ( s3Uri . key (). orElseThrow ()). build ( );
68+ try ( ResponseInputStream < GetObjectResponse > s3Object = s3Client . getObject ( getObjectRequest )) {
6669 KeyStore customKeyStore = KeyStore .getInstance (KeyStore .getDefaultType ());
67- customKeyStore .load (content , trustStorePassword .toCharArray ());
70+ customKeyStore .load (s3Object , trustStorePassword .toCharArray ());
6871 trustManagerFactory = TrustManagerFactory .getInstance (TrustManagerFactory .getDefaultAlgorithm ());
6972 trustManagerFactory .init (customKeyStore );
7073 }
0 commit comments