Skip to content

Commit

Permalink
Add Info Logs for Store Client Setup
Browse files Browse the repository at this point in the history
  • Loading branch information
EmteZogaf committed Aug 23, 2024
1 parent 2a9e51d commit cac93c2
Showing 1 changed file with 24 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
import ca.uhn.fhir.rest.client.interceptor.BasicAuthInterceptor;
import ca.uhn.fhir.rest.client.interceptor.BearerTokenAuthInterceptor;
import de.medizininformatik_initiative.process.feasibility.spring.config.BaseConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
Expand All @@ -19,11 +21,14 @@

import static com.google.common.base.Strings.isNullOrEmpty;
import static de.medizininformatik_initiative.process.feasibility.variables.ConstantsFeasibility.CLIENT_TIMEOUT_DEFAULT;
import static java.util.Objects.nonNull;

@Configuration
@Import(BaseConfig.class)
public class StoreClientSpringConfig {

private static final Logger logger = LoggerFactory.getLogger(StoreClientSpringConfig.class);

@Value("${de.medizininformatik_initiative.feasibility_dsf_process.client.store.proxy.host:#{null}}")
private String proxyHost;

Expand Down Expand Up @@ -64,7 +69,7 @@ public class StoreClientSpringConfig {
private String oauthClientId;

@Value("${de.medizininformatik_initiative.feasibility_dsf_process.client.store.auth.oauth.issuer.url:#{null}}")
private String oauthTokenUrl;
private String oauthIssuerUrl;

@Value("${de.medizininformatik_initiative.feasibility_dsf_process.client.store.auth.oauth.proxy.host:#{null}}")
private String oauthProxyHost;
Expand All @@ -82,30 +87,46 @@ public class StoreClientSpringConfig {
@Qualifier("store-client")
IGenericClient client(@Qualifier("store-client") FhirContext fhirContext,
@Qualifier("store-client") RestfulClientFactory clientFactory) {
logger.info("Setting up store client.");

clientFactory.setServerValidationMode(ServerValidationModeEnum.NEVER);
clientFactory.setConnectTimeout(connectTimeout);
clientFactory.setConnectionRequestTimeout(connectRequestTimeout);
clientFactory.setSocketTimeout(socketTimeout);

if (proxyHost != null) {
logger.info("Setting proxy (host: '{}', port: '{}') for store client.", proxyHost, proxyPort);
clientFactory.setProxy(proxyHost, proxyPort);

if (proxyUsername != null || proxyPassword != null) {
logger.info("Setting proxy credentials (username: '{}', password: '***') for store client.",
proxyUsername);
clientFactory.setProxyCredentials(proxyUsername, proxyPassword);
}
}
fhirContext.setRestfulClientFactory(clientFactory);
var client = fhirContext.newRestfulGenericClient(storeBaseUrl);
if (bearerAuthToken != null) {
logger.info("Setting bearer token '***' for store client.");
client.registerInterceptor(new BearerTokenAuthInterceptor(bearerAuthToken));
} else if (!isNullOrEmpty(oauthClientId) && !isNullOrEmpty(oauthClientSecret)
&& !isNullOrEmpty(oauthTokenUrl)) {
client.registerInterceptor(new OAuthInterceptor(oauthClientId, oauthClientSecret, oauthTokenUrl,
&& !isNullOrEmpty(oauthIssuerUrl)) {
logger.info("Setting OAuth2.0 authentication (issuer url: '{}', client id: '{}', password: '***')"
+ " for store client.", oauthIssuerUrl, oauthClientId);
if (nonNull(oauthProxyHost) && nonNull(oauthProxyPort)) {
logger.info("Setting proxy (host: '{}', port: '{}', username: {},"
+ " password {}) for OAuth2.0 authentication.", oauthProxyHost, oauthProxyPassword,
Optional.ofNullable(oauthProxyUsername).map(u -> "'" + u + "'").orElse("none"),
Optional.ofNullable(oauthProxyPassword).map(p -> "'***'").orElse("none"));
}
client.registerInterceptor(new OAuthInterceptor(oauthClientId, oauthClientSecret, oauthIssuerUrl,
Optional.ofNullable(oauthProxyHost), Optional.ofNullable(oauthProxyPort),
Optional.ofNullable(oauthProxyUsername), Optional.ofNullable(oauthProxyPassword)));
}

if (basicAuthUsername != null || basicAuthPassword != null) {
logger.info("Setting basic authentication (username: '{}', password: '***') for store client.",
basicAuthUsername);
client.registerInterceptor(new BasicAuthInterceptor(basicAuthUsername, basicAuthPassword));
}

Expand Down

0 comments on commit cac93c2

Please sign in to comment.