Skip to content

Commit 1e24893

Browse files
feat: add mtls support (#672)
1 parent 9591f8d commit 1e24893

File tree

20 files changed

+154
-1
lines changed

20 files changed

+154
-1
lines changed

WORKSPACE

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jvm_maven_import_external(
2626
# gapic-generator-java dependencies to match the order in googleapis repository,
2727
# which in its turn, prioritizes actual generated clients runtime dependencies
2828
# over the generator dependencies.
29-
_gax_java_version = "1.64.0"
29+
_gax_java_version = "1.65.1"
3030

3131
http_archive(
3232
name = "com_google_api_gax_java",

src/main/java/com/google/api/generator/gapic/composer/comment/SettingsCommentComposer.java

+2
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ public class SettingsCommentComposer {
6161
toSimpleComment("Returns a builder for the default ExecutorProvider for this service.");
6262
public static final CommentStatement DEFAULT_SERVICE_ENDPOINT_METHOD_COMMENT =
6363
toSimpleComment("Returns the default service endpoint.");
64+
public static final CommentStatement DEFAULT_SERVICE_MTLS_ENDPOINT_METHOD_COMMENT =
65+
toSimpleComment("Returns the default mTLS service endpoint.");
6466
public static final CommentStatement DEFAULT_SERVICE_SCOPES_METHOD_COMMENT =
6567
toSimpleComment("Returns the default service scopes.");
6668

src/main/java/com/google/api/generator/gapic/composer/common/AbstractServiceStubSettingsClassComposer.java

+32
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
import com.google.api.generator.engine.ast.MethodDefinition;
6262
import com.google.api.generator.engine.ast.MethodInvocationExpr;
6363
import com.google.api.generator.engine.ast.NewObjectExpr;
64+
import com.google.api.generator.engine.ast.PrimitiveValue;
6465
import com.google.api.generator.engine.ast.Reference;
6566
import com.google.api.generator.engine.ast.ReferenceConstructorExpr;
6667
import com.google.api.generator.engine.ast.RelationalOperationExpr;
@@ -918,6 +919,22 @@ private List<MethodDefinition> createDefaultHelperAndGetterMethods(
918919
.setReturnExpr(ValueExpr.withValue(StringObjectValue.withValue(service.defaultHost())))
919920
.build());
920921

922+
// Create the getDefaultMtlsEndpoint method.
923+
returnType = TypeNode.STRING;
924+
javaMethods.add(
925+
MethodDefinition.builder()
926+
.setHeaderCommentStatements(
927+
SettingsCommentComposer.DEFAULT_SERVICE_MTLS_ENDPOINT_METHOD_COMMENT)
928+
.setScope(ScopeNode.PUBLIC)
929+
.setIsStatic(true)
930+
.setReturnType(returnType)
931+
.setName("getDefaultMtlsEndpoint")
932+
.setReturnExpr(
933+
ValueExpr.withValue(
934+
StringObjectValue.withValue(
935+
service.defaultHost().replace(".googleapis.com", ".mtls.googleapis.com"))))
936+
.build());
937+
921938
// Create the getDefaultServiceScopes method.
922939
returnType =
923940
TypeNode.withReference(
@@ -1594,6 +1611,21 @@ private static MethodDefinition createNestedClassCreateDefaultMethod(TypeStore t
15941611
.setArguments(
15951612
MethodInvocationExpr.builder().setMethodName("getDefaultEndpoint").build())
15961613
.build());
1614+
bodyExprs.add(
1615+
MethodInvocationExpr.builder()
1616+
.setExprReferenceExpr(builderVarExpr)
1617+
.setMethodName("setMtlsEndpoint")
1618+
.setArguments(
1619+
MethodInvocationExpr.builder().setMethodName("getDefaultMtlsEndpoint").build())
1620+
.build());
1621+
bodyExprs.add(
1622+
MethodInvocationExpr.builder()
1623+
.setExprReferenceExpr(builderVarExpr)
1624+
.setMethodName("setSwitchToMtlsEndpointAllowed")
1625+
.setArguments(
1626+
ValueExpr.withValue(
1627+
PrimitiveValue.builder().setType(TypeNode.BOOLEAN).setValue("true").build()))
1628+
.build());
15971629
bodyStatements.addAll(
15981630
bodyExprs.stream().map(e -> ExprStatement.withExpr(e)).collect(Collectors.toList()));
15991631
bodyStatements.add(EMPTY_LINE_STATEMENT);

src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/DeprecatedServiceStubSettings.golden

+7
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,11 @@ public class DeprecatedServiceStubSettings extends StubSettings<DeprecatedServic
108108
return "localhost:7469";
109109
}
110110

111+
/** Returns the default mTLS service endpoint. */
112+
public static String getDefaultMtlsEndpoint() {
113+
return "localhost:7469";
114+
}
115+
111116
/** Returns the default service scopes. */
112117
public static List<String> getDefaultServiceScopes() {
113118
return DEFAULT_SERVICE_SCOPES;
@@ -225,6 +230,8 @@ public class DeprecatedServiceStubSettings extends StubSettings<DeprecatedServic
225230
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
226231
builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
227232
builder.setEndpoint(getDefaultEndpoint());
233+
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
234+
builder.setSwitchToMtlsEndpointAllowed(true);
228235

229236
return initDefaults(builder);
230237
}

src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/EchoStubSettings.golden

+7
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,11 @@ public class EchoStubSettings extends StubSettings<EchoStubSettings> {
284284
return "localhost:7469";
285285
}
286286

287+
/** Returns the default mTLS service endpoint. */
288+
public static String getDefaultMtlsEndpoint() {
289+
return "localhost:7469";
290+
}
291+
287292
/** Returns the default service scopes. */
288293
public static List<String> getDefaultServiceScopes() {
289294
return DEFAULT_SERVICE_SCOPES;
@@ -461,6 +466,8 @@ public class EchoStubSettings extends StubSettings<EchoStubSettings> {
461466
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
462467
builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
463468
builder.setEndpoint(getDefaultEndpoint());
469+
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
470+
builder.setSwitchToMtlsEndpointAllowed(true);
464471

465472
return initDefaults(builder);
466473
}

src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/LoggingServiceV2StubSettings.golden

+7
Original file line numberDiff line numberDiff line change
@@ -428,6 +428,11 @@ public class LoggingServiceV2StubSettings extends StubSettings<LoggingServiceV2S
428428
return "logging.googleapis.com:443";
429429
}
430430

431+
/** Returns the default mTLS service endpoint. */
432+
public static String getDefaultMtlsEndpoint() {
433+
return "logging.mtls.googleapis.com:443";
434+
}
435+
431436
/** Returns the default service scopes. */
432437
public static List<String> getDefaultServiceScopes() {
433438
return DEFAULT_SERVICE_SCOPES;
@@ -610,6 +615,8 @@ public class LoggingServiceV2StubSettings extends StubSettings<LoggingServiceV2S
610615
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
611616
builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
612617
builder.setEndpoint(getDefaultEndpoint());
618+
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
619+
builder.setSwitchToMtlsEndpointAllowed(true);
613620

614621
return initDefaults(builder);
615622
}

src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/PublisherStubSettings.golden

+7
Original file line numberDiff line numberDiff line change
@@ -437,6 +437,11 @@ public class PublisherStubSettings extends StubSettings<PublisherStubSettings> {
437437
return "pubsub.googleapis.com:443";
438438
}
439439

440+
/** Returns the default mTLS service endpoint. */
441+
public static String getDefaultMtlsEndpoint() {
442+
return "pubsub.mtls.googleapis.com:443";
443+
}
444+
440445
/** Returns the default service scopes. */
441446
public static List<String> getDefaultServiceScopes() {
442447
return DEFAULT_SERVICE_SCOPES;
@@ -651,6 +656,8 @@ public class PublisherStubSettings extends StubSettings<PublisherStubSettings> {
651656
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
652657
builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
653658
builder.setEndpoint(getDefaultEndpoint());
659+
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
660+
builder.setSwitchToMtlsEndpointAllowed(true);
654661

655662
return initDefaults(builder);
656663
}

src/test/java/com/google/api/generator/gapic/composer/rest/goldens/ComplianceStubSettings.golden

+7
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,11 @@ public class EchoStubSettings extends StubSettings<EchoStubSettings> {
284284
return "localhost:7469";
285285
}
286286

287+
/** Returns the default mTLS service endpoint. */
288+
public static String getDefaultMtlsEndpoint() {
289+
return "localhost:7469";
290+
}
291+
287292
/** Returns the default service scopes. */
288293
public static List<String> getDefaultServiceScopes() {
289294
return DEFAULT_SERVICE_SCOPES;
@@ -462,6 +467,8 @@ public class EchoStubSettings extends StubSettings<EchoStubSettings> {
462467
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
463468
builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
464469
builder.setEndpoint(getDefaultEndpoint());
470+
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
471+
builder.setSwitchToMtlsEndpointAllowed(true);
465472

466473
return initDefaults(builder);
467474
}

test/integration/goldens/asset/com/google/cloud/asset/v1/stub/AssetServiceStubSettings.java

+7
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,11 @@ public static String getDefaultEndpoint() {
375375
return "cloudasset.googleapis.com:443";
376376
}
377377

378+
/** Returns the default mTLS service endpoint. */
379+
public static String getDefaultMtlsEndpoint() {
380+
return "cloudasset.mtls.googleapis.com:443";
381+
}
382+
378383
/** Returns the default service scopes. */
379384
public static List<String> getDefaultServiceScopes() {
380385
return DEFAULT_SERVICE_SCOPES;
@@ -623,6 +628,8 @@ private static Builder createDefault() {
623628
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
624629
builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
625630
builder.setEndpoint(getDefaultEndpoint());
631+
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
632+
builder.setSwitchToMtlsEndpointAllowed(true);
626633

627634
return initDefaults(builder);
628635
}

test/integration/goldens/credentials/com/google/cloud/iam/credentials/v1/stub/IamCredentialsStubSettings.java

+7
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,11 @@ public static String getDefaultEndpoint() {
138138
return "iamcredentials.googleapis.com:443";
139139
}
140140

141+
/** Returns the default mTLS service endpoint. */
142+
public static String getDefaultMtlsEndpoint() {
143+
return "iamcredentials.mtls.googleapis.com:443";
144+
}
145+
141146
/** Returns the default service scopes. */
142147
public static List<String> getDefaultServiceScopes() {
143148
return DEFAULT_SERVICE_SCOPES;
@@ -277,6 +282,8 @@ private static Builder createDefault() {
277282
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
278283
builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
279284
builder.setEndpoint(getDefaultEndpoint());
285+
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
286+
builder.setSwitchToMtlsEndpointAllowed(true);
280287

281288
return initDefaults(builder);
282289
}

test/integration/goldens/iam/com/google/iam/v1/stub/IAMPolicyStubSettings.java

+7
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,11 @@ public static String getDefaultEndpoint() {
125125
return "iam-meta-api.googleapis.com:443";
126126
}
127127

128+
/** Returns the default mTLS service endpoint. */
129+
public static String getDefaultMtlsEndpoint() {
130+
return "iam-meta-api.mtls.googleapis.com:443";
131+
}
132+
128133
/** Returns the default service scopes. */
129134
public static List<String> getDefaultServiceScopes() {
130135
return DEFAULT_SERVICE_SCOPES;
@@ -250,6 +255,8 @@ private static Builder createDefault() {
250255
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
251256
builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
252257
builder.setEndpoint(getDefaultEndpoint());
258+
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
259+
builder.setSwitchToMtlsEndpointAllowed(true);
253260

254261
return initDefaults(builder);
255262
}

test/integration/goldens/kms/com/google/cloud/kms/v1/stub/KeyManagementServiceStubSettings.java

+7
Original file line numberDiff line numberDiff line change
@@ -645,6 +645,11 @@ public static String getDefaultEndpoint() {
645645
return "cloudkms.googleapis.com:443";
646646
}
647647

648+
/** Returns the default mTLS service endpoint. */
649+
public static String getDefaultMtlsEndpoint() {
650+
return "cloudkms.mtls.googleapis.com:443";
651+
}
652+
648653
/** Returns the default service scopes. */
649654
public static List<String> getDefaultServiceScopes() {
650655
return DEFAULT_SERVICE_SCOPES;
@@ -962,6 +967,8 @@ private static Builder createDefault() {
962967
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
963968
builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
964969
builder.setEndpoint(getDefaultEndpoint());
970+
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
971+
builder.setSwitchToMtlsEndpointAllowed(true);
965972

966973
return initDefaults(builder);
967974
}

test/integration/goldens/library/com/google/cloud/example/library/v1/stub/LibraryServiceStubSettings.java

+7
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,11 @@ public static String getDefaultEndpoint() {
303303
return "library-example.googleapis.com:443";
304304
}
305305

306+
/** Returns the default mTLS service endpoint. */
307+
public static String getDefaultMtlsEndpoint() {
308+
return "library-example.mtls.googleapis.com:443";
309+
}
310+
306311
/** Returns the default service scopes. */
307312
public static List<String> getDefaultServiceScopes() {
308313
return DEFAULT_SERVICE_SCOPES;
@@ -473,6 +478,8 @@ private static Builder createDefault() {
473478
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
474479
builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
475480
builder.setEndpoint(getDefaultEndpoint());
481+
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
482+
builder.setSwitchToMtlsEndpointAllowed(true);
476483

477484
return initDefaults(builder);
478485
}

test/integration/goldens/logging/com/google/cloud/logging/v2/stub/ConfigServiceV2StubSettings.java

+7
Original file line numberDiff line numberDiff line change
@@ -514,6 +514,11 @@ public static String getDefaultEndpoint() {
514514
return "logging.googleapis.com:443";
515515
}
516516

517+
/** Returns the default mTLS service endpoint. */
518+
public static String getDefaultMtlsEndpoint() {
519+
return "logging.mtls.googleapis.com:443";
520+
}
521+
517522
/** Returns the default service scopes. */
518523
public static List<String> getDefaultServiceScopes() {
519524
return DEFAULT_SERVICE_SCOPES;
@@ -792,6 +797,8 @@ private static Builder createDefault() {
792797
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
793798
builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
794799
builder.setEndpoint(getDefaultEndpoint());
800+
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
801+
builder.setSwitchToMtlsEndpointAllowed(true);
795802

796803
return initDefaults(builder);
797804
}

test/integration/goldens/logging/com/google/cloud/logging/v2/stub/LoggingServiceV2StubSettings.java

+7
Original file line numberDiff line numberDiff line change
@@ -444,6 +444,11 @@ public static String getDefaultEndpoint() {
444444
return "logging.googleapis.com:443";
445445
}
446446

447+
/** Returns the default mTLS service endpoint. */
448+
public static String getDefaultMtlsEndpoint() {
449+
return "logging.mtls.googleapis.com:443";
450+
}
451+
447452
/** Returns the default service scopes. */
448453
public static List<String> getDefaultServiceScopes() {
449454
return DEFAULT_SERVICE_SCOPES;
@@ -626,6 +631,8 @@ private static Builder createDefault() {
626631
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
627632
builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
628633
builder.setEndpoint(getDefaultEndpoint());
634+
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
635+
builder.setSwitchToMtlsEndpointAllowed(true);
629636

630637
return initDefaults(builder);
631638
}

test/integration/goldens/logging/com/google/cloud/logging/v2/stub/MetricsServiceV2StubSettings.java

+7
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,11 @@ public static String getDefaultEndpoint() {
212212
return "logging.googleapis.com:443";
213213
}
214214

215+
/** Returns the default mTLS service endpoint. */
216+
public static String getDefaultMtlsEndpoint() {
217+
return "logging.mtls.googleapis.com:443";
218+
}
219+
215220
/** Returns the default service scopes. */
216221
public static List<String> getDefaultServiceScopes() {
217222
return DEFAULT_SERVICE_SCOPES;
@@ -371,6 +376,8 @@ private static Builder createDefault() {
371376
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
372377
builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
373378
builder.setEndpoint(getDefaultEndpoint());
379+
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
380+
builder.setSwitchToMtlsEndpointAllowed(true);
374381

375382
return initDefaults(builder);
376383
}

test/integration/goldens/pubsub/com/google/cloud/pubsub/v1/stub/PublisherStubSettings.java

+7
Original file line numberDiff line numberDiff line change
@@ -478,6 +478,11 @@ public static String getDefaultEndpoint() {
478478
return "pubsub.googleapis.com:443";
479479
}
480480

481+
/** Returns the default mTLS service endpoint. */
482+
public static String getDefaultMtlsEndpoint() {
483+
return "pubsub.mtls.googleapis.com:443";
484+
}
485+
481486
/** Returns the default service scopes. */
482487
public static List<String> getDefaultServiceScopes() {
483488
return DEFAULT_SERVICE_SCOPES;
@@ -711,6 +716,8 @@ private static Builder createDefault() {
711716
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
712717
builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
713718
builder.setEndpoint(getDefaultEndpoint());
719+
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
720+
builder.setSwitchToMtlsEndpointAllowed(true);
714721

715722
return initDefaults(builder);
716723
}

test/integration/goldens/pubsub/com/google/cloud/pubsub/v1/stub/SchemaServiceStubSettings.java

+7
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,11 @@ public static String getDefaultEndpoint() {
242242
return "pubsub.googleapis.com:443";
243243
}
244244

245+
/** Returns the default mTLS service endpoint. */
246+
public static String getDefaultMtlsEndpoint() {
247+
return "pubsub.mtls.googleapis.com:443";
248+
}
249+
245250
/** Returns the default service scopes. */
246251
public static List<String> getDefaultServiceScopes() {
247252
return DEFAULT_SERVICE_SCOPES;
@@ -401,6 +406,8 @@ private static Builder createDefault() {
401406
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
402407
builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
403408
builder.setEndpoint(getDefaultEndpoint());
409+
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
410+
builder.setSwitchToMtlsEndpointAllowed(true);
404411

405412
return initDefaults(builder);
406413
}

0 commit comments

Comments
 (0)