Skip to content

Commit 201b30b

Browse files
committed
Replaced VaultUtils with new VaultTokenApplicationContextInitializer.
1 parent c58d21a commit 201b30b

File tree

6 files changed

+40
-29
lines changed

6 files changed

+40
-29
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
11
package no.nav.brregstub;
22

33
import no.nav.dolly.libs.nais.NaisEnvironmentApplicationContextInitializer;
4-
import no.nav.testnav.libs.vault.VaultUtils;
4+
import no.nav.dolly.libs.vault.VaultTokenApplicationContextInitializer;
55
import org.springframework.boot.autoconfigure.SpringBootApplication;
66
import org.springframework.boot.builder.SpringApplicationBuilder;
77

88

99
@SpringBootApplication
1010
public class BrregApplicationLauncher {
11-
1211
public static void main(String[] args) {
13-
VaultUtils.initCloudVaultToken("prod");
1412
new SpringApplicationBuilder(BrregApplicationLauncher.class)
15-
.initializers(new NaisEnvironmentApplicationContextInitializer())
13+
.initializers(
14+
new VaultTokenApplicationContextInitializer(),
15+
new NaisEnvironmentApplicationContextInitializer())
1616
.run(args);
1717
}
18-
1918
}

apps/brreg-stub/src/main/resources/application.yml

+3-4
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,19 @@ springdoc:
99

1010
management:
1111
endpoints:
12-
enabled-by-default: true
12+
access:
13+
default: read_only
1314
web:
1415
base-path: /internal
1516
exposure:
1617
include: prometheus,health
1718
path-mapping:
1819
prometheus: metrics
19-
endpoint:
20-
prometheus:
21-
enabled: true
2220
prometheus:
2321
metrics:
2422
export:
2523
enabled: true
24+
2625
server:
2726
servlet:
2827
encoding:
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
package no.nav.registre.sdforvalter;
22

33
import no.nav.dolly.libs.nais.NaisEnvironmentApplicationContextInitializer;
4-
import no.nav.testnav.libs.vault.VaultUtils;
4+
import no.nav.dolly.libs.vault.VaultTokenApplicationContextInitializer;
55
import org.springframework.boot.autoconfigure.SpringBootApplication;
66
import org.springframework.boot.builder.SpringApplicationBuilder;
77

88
@SpringBootApplication
99
public class StatiskDataForvalterApplicationStarter {
1010
public static void main(String[] args) {
11-
VaultUtils.initCloudVaultToken("prod");
1211
new SpringApplicationBuilder(StatiskDataForvalterApplicationStarter.class)
13-
.initializers(new NaisEnvironmentApplicationContextInitializer())
12+
.initializers(
13+
new VaultTokenApplicationContextInitializer(),
14+
new NaisEnvironmentApplicationContextInitializer()
15+
)
1416
.run(args);
1517
}
1618
}
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
package no.nav.udistub;
22

33
import no.nav.dolly.libs.nais.NaisEnvironmentApplicationContextInitializer;
4-
import no.nav.testnav.libs.vault.VaultUtils;
4+
import no.nav.dolly.libs.vault.VaultTokenApplicationContextInitializer;
55
import org.springframework.boot.autoconfigure.SpringBootApplication;
66
import org.springframework.boot.builder.SpringApplicationBuilder;
77

88
@SpringBootApplication
99
public class UdiStubApplicationStarter {
1010
public static void main(String[] args) {
11-
VaultUtils.initCloudVaultToken("prod");
1211
new SpringApplicationBuilder(UdiStubApplicationStarter.class)
13-
.initializers(new NaisEnvironmentApplicationContextInitializer())
12+
.initializers(
13+
new VaultTokenApplicationContextInitializer(),
14+
new NaisEnvironmentApplicationContextInitializer()
15+
)
1416
.run(args);
1517
}
1618
}

libs/vault/src/main/java/no/nav/testnav/libs/vault/VaultException.java libs/vault/src/main/java/no/nav/dolly/libs/vault/VaultException.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package no.nav.testnav.libs.vault;
1+
package no.nav.dolly.libs.vault;
22

33
public class VaultException extends RuntimeException {
44

libs/vault/src/main/java/no/nav/testnav/libs/vault/VaultUtils.java libs/vault/src/main/java/no/nav/dolly/libs/vault/VaultTokenApplicationContextInitializer.java

+22-13
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,34 @@
1-
package no.nav.testnav.libs.vault;
1+
package no.nav.dolly.libs.vault;
22

3-
import lombok.NoArgsConstructor;
4-
import lombok.extern.slf4j.Slf4j;
3+
import org.springframework.context.ApplicationContextInitializer;
4+
import org.springframework.context.ConfigurableApplicationContext;
55
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
6+
import org.springframework.lang.NonNull;
67

78
import java.io.IOException;
89
import java.nio.file.Files;
910
import java.nio.file.Paths;
1011
import java.util.Optional;
12+
import java.util.stream.Stream;
1113

12-
import static lombok.AccessLevel.PRIVATE;
14+
/**
15+
* Will set a system property {@code VAULT_TOKEN} if the Spring profile is set to {@link #PROFILE}.
16+
* Will only work for applications in {@code dev-fss}.
17+
*/
18+
public class VaultTokenApplicationContextInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> {
1319

14-
@NoArgsConstructor(access = PRIVATE)
15-
@Slf4j
16-
public final class VaultUtils {
20+
private static final String PROFILE = "prod";
21+
22+
@Override
23+
public void initialize(@NonNull ConfigurableApplicationContext context) {
24+
25+
Stream
26+
.of(context.getEnvironment().getActiveProfiles())
27+
.filter(profile -> profile.equals(PROFILE))
28+
.findAny()
29+
.ifPresent(profile -> System.setProperty(VAULT_TOKEN_SYSTEM_PROPERTY, getVaultToken()));
30+
31+
}
1732

1833
private static final String NAIS_CLUSTER_SYSTEM_PROPERTY = "NAIS_CLUSTER_NAME";
1934
private static final String VAULT_TOKEN_SYSTEM_PROPERTY = "spring.cloud.vault.token";
@@ -49,10 +64,4 @@ private static String getVaultToken() {
4964

5065
}
5166

52-
public static void initCloudVaultToken(String ifProfileIs) {
53-
if (ifProfileIs.equals(System.getProperty("spring.profiles.active"))) {
54-
System.setProperty(VAULT_TOKEN_SYSTEM_PROPERTY, getVaultToken());
55-
}
56-
}
57-
5867
}

0 commit comments

Comments
 (0)