Add support for environment-dependent secondary OAuth2 credentials JSON
This commit is contained in:
parent
d832eaa759
commit
cd8f74e60b
|
@ -44,6 +44,10 @@ adminEventLoggingConfiguration:
|
|||
{
|
||||
"key": "value"
|
||||
}
|
||||
secondaryCredentials: |
|
||||
{
|
||||
"key": "value"
|
||||
}
|
||||
projectId: some-project-id
|
||||
logName: some-log-name
|
||||
|
||||
|
@ -225,6 +229,7 @@ unidentifiedDelivery:
|
|||
recaptcha:
|
||||
projectPath: projects/example
|
||||
credentialConfigurationJson: "{ }" # service account configuration for backend authentication
|
||||
secondaryCredentialConfigurationJson: "{ }" # service account configuration for backend authentication
|
||||
|
||||
hCaptcha:
|
||||
apiKey: secret://hCaptcha.apiKey
|
||||
|
@ -376,6 +381,10 @@ registrationService:
|
|||
{
|
||||
"example": "example"
|
||||
}
|
||||
secondaryCredentialConfigurationJson: |
|
||||
{
|
||||
"example": "example"
|
||||
}
|
||||
identityTokenAudience: https://registration.example.com
|
||||
registrationCaCertificate: | # Registration service TLS certificate trust root
|
||||
-----BEGIN CERTIFICATE-----
|
||||
|
|
|
@ -311,6 +311,10 @@ public class WhisperServerService extends Application<WhisperServerConfiguration
|
|||
Metrics.addRegistry(datadogMeterRegistry);
|
||||
}
|
||||
|
||||
final boolean useSecondaryCredentialsJson = Optional.ofNullable(
|
||||
System.getenv("SIGNAL_USE_SECONDARY_CREDENTIALS_JSON"))
|
||||
.isPresent();
|
||||
|
||||
environment.lifecycle().manage(new MicrometerRegistryManager(Metrics.globalRegistry));
|
||||
|
||||
HeaderControlledResourceBundleLookup headerControlledResourceBundleLookup =
|
||||
|
@ -463,7 +467,9 @@ public class WhisperServerService extends Application<WhisperServerConfiguration
|
|||
final AdminEventLogger adminEventLogger = new GoogleCloudAdminEventLogger(
|
||||
LoggingOptions.newBuilder().setProjectId(config.getAdminEventLoggingConfiguration().projectId())
|
||||
.setCredentials(GoogleCredentials.fromStream(new ByteArrayInputStream(
|
||||
config.getAdminEventLoggingConfiguration().credentials().getBytes(StandardCharsets.UTF_8))))
|
||||
useSecondaryCredentialsJson
|
||||
? config.getAdminEventLoggingConfiguration().secondaryCredentials().getBytes(StandardCharsets.UTF_8)
|
||||
: config.getAdminEventLoggingConfiguration().credentials().getBytes(StandardCharsets.UTF_8))))
|
||||
.build().getService(),
|
||||
config.getAdminEventLoggingConfiguration().projectId(),
|
||||
config.getAdminEventLoggingConfiguration().logName());
|
||||
|
@ -500,7 +506,9 @@ public class WhisperServerService extends Application<WhisperServerConfiguration
|
|||
RegistrationServiceClient registrationServiceClient = new RegistrationServiceClient(
|
||||
config.getRegistrationServiceConfiguration().host(),
|
||||
config.getRegistrationServiceConfiguration().port(),
|
||||
config.getRegistrationServiceConfiguration().credentialConfigurationJson(),
|
||||
useSecondaryCredentialsJson
|
||||
? config.getRegistrationServiceConfiguration().secondaryCredentialConfigurationJson()
|
||||
: config.getRegistrationServiceConfiguration().credentialConfigurationJson(),
|
||||
config.getRegistrationServiceConfiguration().identityTokenAudience(),
|
||||
config.getRegistrationServiceConfiguration().registrationCaCertificate(),
|
||||
registrationCallbackExecutor);
|
||||
|
@ -573,8 +581,10 @@ public class WhisperServerService extends Application<WhisperServerConfiguration
|
|||
final TurnTokenGenerator turnTokenGenerator = new TurnTokenGenerator(dynamicConfigurationManager);
|
||||
|
||||
RecaptchaClient recaptchaClient = new RecaptchaClient(
|
||||
config.getRecaptchaConfiguration().getProjectPath(),
|
||||
config.getRecaptchaConfiguration().getCredentialConfigurationJson(),
|
||||
config.getRecaptchaConfiguration().projectPath(),
|
||||
useSecondaryCredentialsJson
|
||||
? config.getRecaptchaConfiguration().secondaryCredentialConfigurationJson()
|
||||
: config.getRecaptchaConfiguration().credentialConfigurationJson(),
|
||||
dynamicConfigurationManager);
|
||||
HttpClient hcaptchaHttpClient = HttpClient.newBuilder().version(HttpClient.Version.HTTP_2)
|
||||
.connectTimeout(Duration.ofSeconds(10)).build();
|
||||
|
|
|
@ -10,6 +10,7 @@ import javax.validation.constraints.NotEmpty;
|
|||
|
||||
public record AdminEventLoggingConfiguration(
|
||||
@NotBlank String credentials,
|
||||
@NotBlank String secondaryCredentials,
|
||||
@NotEmpty String projectId,
|
||||
@NotEmpty String logName) {
|
||||
}
|
||||
|
|
|
@ -7,18 +7,7 @@ package org.whispersystems.textsecuregcm.configuration;
|
|||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
|
||||
public class RecaptchaConfiguration {
|
||||
public record RecaptchaConfiguration(@NotEmpty String projectPath, @NotEmpty String credentialConfigurationJson,
|
||||
@NotEmpty String secondaryCredentialConfigurationJson) {
|
||||
|
||||
private String projectPath;
|
||||
private String credentialConfigurationJson;
|
||||
|
||||
@NotEmpty
|
||||
public String getProjectPath() {
|
||||
return projectPath;
|
||||
}
|
||||
|
||||
@NotEmpty
|
||||
public String getCredentialConfigurationJson() {
|
||||
return credentialConfigurationJson;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import javax.validation.constraints.NotBlank;
|
|||
public record RegistrationServiceConfiguration(@NotBlank String host,
|
||||
int port,
|
||||
@NotBlank String credentialConfigurationJson,
|
||||
@NotBlank String secondaryCredentialConfigurationJson,
|
||||
@NotBlank String identityTokenAudience,
|
||||
@NotBlank String registrationCaCertificate) {
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue