pvillard31 commented on code in PR #10586:
URL: https://github.com/apache/nifi/pull/10586#discussion_r2578251760
##########
nifi-commons/nifi-hashicorp-vault/src/main/java/org/apache/nifi/vault/hashicorp/config/HashiCorpVaultConfiguration.java:
##########
@@ -162,7 +168,38 @@ public ClientOptions clientOptions() {
@Override
protected RestTemplateFactory getRestTemplateFactory() {
- return this.restTemplateFactory(clientHttpRequestFactoryWrapper());
+ final RestTemplateFactory factory =
this.restTemplateFactory(clientHttpRequestFactoryWrapper());
+ final String namespace =
getEnvironment().getProperty("vault.namespace");
+
+ if (namespace != null && !namespace.isEmpty()) {
+ return new RestTemplateFactory() {
+ @Override
+ public RestTemplate create() {
+ final RestTemplate restTemplate = factory.create();
+ // Add interceptor to inject X-Vault-Namespace header
+ final ClientHttpRequestInterceptor namespaceInterceptor =
(request, body, execution) -> {
+
request.getHeaders().add(VaultHttpHeaders.VAULT_NAMESPACE, namespace);
+ return execution.execute(request, body);
+ };
+ restTemplate.getInterceptors().add(namespaceInterceptor);
+ return restTemplate;
+ }
+
+ @Override
+ public RestTemplate create(final Consumer<RestTemplateBuilder>
customizer) {
+ final RestTemplate restTemplate =
factory.create(customizer);
+ // Add interceptor to inject X-Vault-Namespace header
+ final ClientHttpRequestInterceptor namespaceInterceptor =
(request, body, execution) -> {
+
request.getHeaders().add(VaultHttpHeaders.VAULT_NAMESPACE, namespace);
+ return execution.execute(request, body);
+ };
+ restTemplate.getInterceptors().add(namespaceInterceptor);
+ return restTemplate;
+ }
+ };
+ }
+
+ return factory;
Review Comment:
Super minor but could be "simplified" with:
```java
public enum VaultConfigurationKey {
...
NAMESPACE("vault.namespace");
```
and
```suggestion
final RestTemplateFactory factory =
this.restTemplateFactory(clientHttpRequestFactoryWrapper());
final String namespace =
getEnvironment().getProperty(VaultConfigurationKey.NAMESPACE.key);
if (namespace == null || namespace.isEmpty()) {
return factory;
}
final ClientHttpRequestInterceptor namespaceInterceptor = (request,
body, execution) -> {
request.getHeaders().add(VaultHttpHeaders.VAULT_NAMESPACE,
namespace);
return execution.execute(request, body);
};
return new RestTemplateFactory() {
@Override
public RestTemplate create() {
final RestTemplate restTemplate = factory.create();
restTemplate.getInterceptors().add(namespaceInterceptor);
return restTemplate;
}
@Override
public RestTemplate create(final Consumer<RestTemplateBuilder>
customizer) {
final RestTemplate restTemplate = factory.create(customizer);
restTemplate.getInterceptors().add(namespaceInterceptor);
return restTemplate;
}
};
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]