2323import io .envoyproxy .envoy .extensions .transport_sockets .tls .v3 .CertificateProviderPluginInstance ;
2424import io .envoyproxy .envoy .extensions .transport_sockets .tls .v3 .CertificateValidationContext ;
2525import io .envoyproxy .envoy .extensions .transport_sockets .tls .v3 .CommonTlsContext ;
26- import io .envoyproxy .envoy .extensions .transport_sockets .tls .v3 .CommonTlsContext .CertificateProviderInstance ;
2726import io .envoyproxy .envoy .extensions .transport_sockets .tls .v3 .CommonTlsContext .CombinedCertificateValidationContext ;
2827import io .envoyproxy .envoy .extensions .transport_sockets .tls .v3 .DownstreamTlsContext ;
2928import io .envoyproxy .envoy .extensions .transport_sockets .tls .v3 .UpstreamTlsContext ;
@@ -63,48 +62,26 @@ public class CommonTlsContextTestsUtil {
6362 public static final String BAD_CLIENT_KEY_FILE = "badclient.key" ;
6463
6564 /** takes additional values and creates CombinedCertificateValidationContext as needed. */
66- @ SuppressWarnings ("deprecation" )
67- static CommonTlsContext buildCommonTlsContextWithAdditionalValues (
65+ private static CommonTlsContext buildCommonTlsContextWithAdditionalValues (
6866 String certInstanceName , String certName ,
6967 String validationContextCertInstanceName , String validationContextCertName ,
7068 Iterable <StringMatcher > matchSubjectAltNames ,
7169 Iterable <String > alpnNames ) {
72-
73- CommonTlsContext .Builder builder = CommonTlsContext .newBuilder ();
74-
75- CertificateProviderInstance certificateProviderInstance = CertificateProviderInstance
76- .newBuilder ().setInstanceName (certInstanceName ).setCertificateName (certName ).build ();
77- if (certificateProviderInstance != null ) {
78- builder .setTlsCertificateCertificateProviderInstance (certificateProviderInstance );
79- }
80- CertificateProviderInstance validationCertificateProviderInstance =
81- CertificateProviderInstance .newBuilder ().setInstanceName (validationContextCertInstanceName )
82- .setCertificateName (validationContextCertName ).build ();
83- CertificateValidationContext certValidationContext =
84- matchSubjectAltNames == null
85- ? null
86- : CertificateValidationContext .newBuilder ()
87- .addAllMatchSubjectAltNames (matchSubjectAltNames )
88- .build ();
89- if (validationCertificateProviderInstance != null ) {
90- CombinedCertificateValidationContext .Builder combinedBuilder =
91- CombinedCertificateValidationContext .newBuilder ()
92- .setValidationContextCertificateProviderInstance (
93- validationCertificateProviderInstance );
94- if (certValidationContext != null ) {
95- combinedBuilder = combinedBuilder .setDefaultValidationContext (certValidationContext );
96- }
97- builder .setCombinedValidationContext (combinedBuilder );
98- } else if (validationCertificateProviderInstance != null ) {
99- builder
100- .setValidationContextCertificateProviderInstance (validationCertificateProviderInstance );
101- } else if (certValidationContext != null ) {
102- builder .setValidationContext (certValidationContext );
103- }
104- if (alpnNames != null ) {
105- builder .addAllAlpnProtocols (alpnNames );
106- }
107- return builder .build ();
70+ @ SuppressWarnings ("deprecation" ) // gRFC A29 predates match_typed_subject_alt_names
71+ CertificateValidationContext .Builder certificateValidationContextBuilder
72+ = CertificateValidationContext .newBuilder ()
73+ .addAllMatchSubjectAltNames (matchSubjectAltNames );
74+ return CommonTlsContext .newBuilder ()
75+ .setTlsCertificateProviderInstance (CertificateProviderPluginInstance .newBuilder ()
76+ .setInstanceName (certInstanceName )
77+ .setCertificateName (certName ))
78+ .setCombinedValidationContext (CombinedCertificateValidationContext .newBuilder ()
79+ .setDefaultValidationContext (certificateValidationContextBuilder
80+ .setCaCertificateProviderInstance (CertificateProviderPluginInstance .newBuilder ()
81+ .setInstanceName (validationContextCertInstanceName )
82+ .setCertificateName (validationContextCertName ))))
83+ .addAllAlpnProtocols (alpnNames )
84+ .build ();
10885 }
10986
11087 /** Helper method to build DownstreamTlsContext for multiple test classes. */
@@ -152,7 +129,7 @@ public static DownstreamTlsContext buildTestDownstreamTlsContext(
152129 useSans ? Arrays .asList (
153130 StringMatcher .newBuilder ()
154131 .setExact ("spiffe://grpc-sds-testing.svc.id.goog/ns/default/sa/bob" )
155- .build ()) : null ,
132+ .build ()) : Arrays . asList () ,
156133 Arrays .asList ("managed-tls" ));
157134 }
158135 return buildDownstreamTlsContext (commonTlsContext , /* requireClientCert= */ false );
@@ -199,7 +176,6 @@ public static X509Certificate getCertFromResourceName(String resourceName)
199176 }
200177 }
201178
202- @ SuppressWarnings ("deprecation" )
203179 private static CommonTlsContext buildCommonTlsContextForCertProviderInstance (
204180 String certInstanceName ,
205181 String certName ,
@@ -210,10 +186,10 @@ private static CommonTlsContext buildCommonTlsContextForCertProviderInstance(
210186 CommonTlsContext .Builder builder = CommonTlsContext .newBuilder ();
211187 if (certInstanceName != null ) {
212188 builder =
213- builder .setTlsCertificateCertificateProviderInstance (
214- CommonTlsContext . CertificateProviderInstance .newBuilder ()
215- .setInstanceName (certInstanceName )
216- .setCertificateName (certName ));
189+ builder .setTlsCertificateProviderInstance (
190+ CertificateProviderPluginInstance .newBuilder ()
191+ .setInstanceName (certInstanceName )
192+ .setCertificateName (certName ));
217193 }
218194 builder =
219195 addCertificateValidationContext (
@@ -248,35 +224,28 @@ private static CommonTlsContext buildNewCommonTlsContextForCertProviderInstance(
248224 return builder .build ();
249225 }
250226
251- @ SuppressWarnings ("deprecation" )
252227 private static CommonTlsContext .Builder addCertificateValidationContext (
253228 CommonTlsContext .Builder builder ,
254229 String rootInstanceName ,
255230 String rootCertName ,
256231 CertificateValidationContext staticCertValidationContext ) {
257- CertificateProviderInstance providerInstance = null ;
258- if (rootInstanceName != null ) {
259- providerInstance = CertificateProviderInstance .newBuilder ()
260- .setInstanceName (rootInstanceName )
261- .setCertificateName (rootCertName )
262- .build ();
263- }
264- if (providerInstance != null ) {
265- builder = builder .setValidationContextCertificateProviderInstance (providerInstance );
232+ if (staticCertValidationContext == null && rootInstanceName == null ) {
233+ return builder ;
266234 }
267- CombinedCertificateValidationContext .Builder combined =
268- CombinedCertificateValidationContext .newBuilder ();
269- if (providerInstance != null ) {
270- combined = combined .setValidationContextCertificateProviderInstance (providerInstance );
271- }
272- if (staticCertValidationContext != null ) {
273- combined = combined .setDefaultValidationContext (staticCertValidationContext );
235+ CertificateValidationContext .Builder contextBuilder ;
236+ if (staticCertValidationContext == null ) {
237+ contextBuilder = CertificateValidationContext .newBuilder ();
238+ } else {
239+ contextBuilder = staticCertValidationContext .toBuilder ();
274240 }
275- if (combined .hasValidationContextCertificateProviderInstance ()
276- || combined .hasDefaultValidationContext ()) {
277- builder = builder .setCombinedValidationContext (combined .build ());
241+ if (rootInstanceName != null ) {
242+ contextBuilder .setCaCertificateProviderInstance (CertificateProviderPluginInstance .newBuilder ()
243+ .setInstanceName (rootInstanceName )
244+ .setCertificateName (rootCertName ));
245+ builder .setValidationContext (contextBuilder .build ());
278246 }
279- return builder ;
247+ return builder .setCombinedValidationContext (CombinedCertificateValidationContext .newBuilder ()
248+ .setDefaultValidationContext (contextBuilder ));
280249 }
281250
282251 private static CommonTlsContext .Builder addNewCertificateValidationContext (
0 commit comments