Skip to content

Commit e23949c

Browse files
feat: add mtls support
1 parent 9591f8d commit e23949c

20 files changed

Lines changed: 154 additions & 1 deletion

File tree

WORKSPACE

Lines changed: 1 addition & 1 deletion
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

Lines changed: 2 additions & 0 deletions
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

Lines changed: 32 additions & 0 deletions
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

Lines changed: 7 additions & 0 deletions
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

Lines changed: 7 additions & 0 deletions
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

Lines changed: 7 additions & 0 deletions
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

Lines changed: 7 additions & 0 deletions
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

Lines changed: 7 additions & 0 deletions
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

Lines changed: 7 additions & 0 deletions
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

Lines changed: 7 additions & 0 deletions
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
}

0 commit comments

Comments
 (0)