Skip to content

Commit fcc1295

Browse files
committed
Merge branch 'master' into feature/sende-xml-til-tps
2 parents fe866e6 + 96a8432 commit fcc1295

File tree

622 files changed

+9177
-12140
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

622 files changed

+9177
-12140
lines changed

.github/workflows/all.workflows.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ on:
33
inputs:
44
workflow:
55
type: choice
6-
description: "Backend or frontend."
6+
description: "Backend or frontend. These use slightly different workflows."
77
options:
88
- "backend"
99
- "frontend"
@@ -35,7 +35,7 @@ on:
3535
sonar-enabled:
3636
type: boolean
3737
description: "Run Sonar scan?"
38-
default: true
38+
default: false
3939

4040
permissions:
4141
contents: read

.github/workflows/common.workflow.libs.frontend.yml

+12-3
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,17 @@ jobs:
4949
if: |
5050
(github.ref == 'refs/heads/master' || contains(github.event.head_commit.message, '#publish-libs')) &&
5151
(!contains(github.event.head_commit.message, '[skip ci]'))
52-
run: npm version patch && npm publish
52+
run: |
53+
echo Release started by $GITHUB_ACTOR
54+
git remote set-url origin https://$GITHUB_ACTOR:[email protected]/$GITHUB_REPOSITORY.git
55+
git config --global user.email "[email protected]"
56+
git config --global user.name "$GITHUB_ACTOR"
57+
58+
git fetch
59+
git pull
60+
npm version patch
61+
npm publish
62+
git push --follow-tags
5363
working-directory: ${{ inputs.working-directory }}
5464
env:
55-
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
56-
65+
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

apps/adresse-service/build.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ sonarqube {
1111

1212
dependencies {
1313
implementation "no.nav.testnav.libs:data-transfer-objects"
14+
implementation "no.nav.testnav.libs:reactive-core"
1415
implementation "no.nav.testnav.libs:security-core"
1516
implementation "no.nav.testnav.libs:servlet-core"
1617
implementation "no.nav.testnav.libs:servlet-security"

apps/adresse-service/settings.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ rootProject.name = "adresse-service"
77
includeBuild "../../plugins/java"
88

99
includeBuild "../../libs/data-transfer-objects"
10+
includeBuild "../../libs/reactive-core"
1011
includeBuild "../../libs/security-core"
1112
includeBuild "../../libs/servlet-core"
1213
includeBuild "../../libs/servlet-security"

apps/adresse-service/src/main/java/no/nav/testnav/apps/adresseservice/consumer/PdlAdresseConsumer.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,12 @@ public class PdlAdresseConsumer {
1919
public PdlAdresseConsumer(
2020
TokenExchange tokenExchange,
2121
Consumers consumers,
22-
WebClient.Builder webClientBuilder) {
22+
WebClient webClient
23+
) {
2324
this.tokenExchange = tokenExchange;
2425
serverProperties = consumers.getPdlServices();
25-
this.webClient = webClientBuilder
26+
this.webClient = webClient
27+
.mutate()
2628
.baseUrl(serverProperties.getUrl())
2729
.build();
2830
}
@@ -32,4 +34,5 @@ public PdlAdresseResponse sendAdressesoek(GraphQLRequest adresseQuery) {
3234
.flatMap(token -> new PdlAdresseSoekCommand(webClient, adresseQuery, token.getTokenValue()).call())
3335
.block();
3436
}
37+
3538
}

apps/adresse-service/src/main/java/no/nav/testnav/apps/adresseservice/consumer/command/PdlAdresseSoekCommand.java

+2-5
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,13 @@
66
import no.nav.testnav.apps.adresseservice.dto.PdlAdresseResponse;
77
import no.nav.testnav.apps.adresseservice.exception.BadRequestException;
88
import no.nav.testnav.apps.adresseservice.exception.NotFoundException;
9-
import no.nav.testnav.apps.adresseservice.util.WebClientFilter;
9+
import no.nav.testnav.libs.reactivecore.web.WebClientError;
1010
import org.springframework.http.HttpHeaders;
1111
import org.springframework.http.MediaType;
1212
import org.springframework.web.reactive.function.BodyInserters;
1313
import org.springframework.web.reactive.function.client.WebClient;
1414
import reactor.core.publisher.Mono;
15-
import reactor.util.retry.Retry;
1615

17-
import java.time.Duration;
1816
import java.util.concurrent.Callable;
1917

2018
@Slf4j
@@ -39,8 +37,7 @@ public Mono<PdlAdresseResponse> call() {
3937
.header(TEMA, TemaGrunnlag.GEN.name())
4038
.retrieve()
4139
.bodyToMono(PdlAdresseResponse.class)
42-
.retryWhen(Retry.backoff(3, Duration.ofSeconds(5))
43-
.filter(WebClientFilter::is5xxException))
40+
.retryWhen(WebClientError.is5xxException())
4441
.map(value -> {
4542
if (!value.getErrors().isEmpty()) {
4643
throw new BadRequestException("Spørring inneholder feil: " + value.getErrors().toString());

apps/adresse-service/src/main/java/no/nav/testnav/apps/adresseservice/util/WebClientFilter.java

-14
This file was deleted.

apps/adresse-service/src/main/resources/logback-spring.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<configuration>
33
<springProfile name="prod">
44
<appender name="stdout_json" class="ch.qos.logback.core.ConsoleAppender">
5-
<encoder class="no.nav.testnav.libs.servletcore.logging.TestnavLogbackEncoder">
5+
<encoder class="no.nav.dolly.libs.logging.DollyLogstashEncoder">
66
<throwableConverter class="net.logstash.logback.stacktrace.ShortenedThrowableConverter">
77
<rootCauseFirst>true</rootCauseFirst>
88

apps/altinn3-tilgang-service/src/main/java/no/nav/testnav/altinn3tilgangservice/consumer/altinn/AltinnConsumer.java

+5-3
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,13 @@ public AltinnConsumer(
5151
MaskinportenConsumer maskinportenConsumer,
5252
ObjectMapper objectMapper,
5353
MapperFacade mapperFacade,
54-
WebClient.Builder webClientBuilder, BrregConsumer brregConsumer) {
55-
54+
WebClient webClient,
55+
BrregConsumer brregConsumer
56+
) {
5657
this.altinnConfig = altinnConfig;
5758
this.maskinportenConsumer = maskinportenConsumer;
58-
this.webClient = webClientBuilder
59+
this.webClient = webClient
60+
.mutate()
5961
.baseUrl(altinnConfig.getUrl())
6062
.codecs(clientDefaultCodecsConfigurer -> {
6163
clientDefaultCodecsConfigurer

apps/altinn3-tilgang-service/src/main/java/no/nav/testnav/altinn3tilgangservice/consumer/altinn/command/CreateAccessListeMemberCommand.java

+4-7
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import no.nav.testnav.altinn3tilgangservice.config.AltinnConfig;
66
import no.nav.testnav.altinn3tilgangservice.consumer.altinn.dto.AltinnAccessListResponseDTO;
77
import no.nav.testnav.altinn3tilgangservice.consumer.altinn.dto.OrganisasjonCreateDTO;
8-
import no.nav.testnav.libs.reactivecore.utils.WebClientFilter;
8+
import no.nav.testnav.libs.reactivecore.web.WebClientError;
99
import org.springframework.http.HttpHeaders;
1010
import org.springframework.http.MediaType;
1111
import org.springframework.web.reactive.function.client.WebClient;
@@ -38,15 +38,12 @@ public Mono<AltinnAccessListResponseDTO> call() {
3838
.header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
3939
.retrieve()
4040
.bodyToMono(AltinnAccessListResponseDTO.class)
41-
.doOnError(WebClientFilter::logErrorMessage)
41+
.doOnError(WebClientError.logTo(log))
4242
.doOnSuccess(value -> log.info("Altinn organisasjontilgang opprettet for {}",
4343
organisasjon.getData().stream()
4444
.map(data -> data.split(":"))
45-
.map(data -> data[data.length-1])
45+
.map(data -> data[data.length - 1])
4646
.collect(Collectors.joining())))
47-
.onErrorResume(throwable -> Mono.just(AltinnAccessListResponseDTO.builder()
48-
.status(WebClientFilter.getStatus(throwable))
49-
.feilmelding(WebClientFilter.getMessage(throwable))
50-
.build()));
47+
.onErrorResume(throwable -> AltinnAccessListResponseDTO.of(WebClientError.describe(throwable)));
5148
}
5249
}

apps/altinn3-tilgang-service/src/main/java/no/nav/testnav/altinn3tilgangservice/consumer/altinn/command/DeleteAccessListMemberCommand.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import no.nav.testnav.altinn3tilgangservice.config.AltinnConfig;
66
import no.nav.testnav.altinn3tilgangservice.consumer.altinn.dto.AltinnAccessListResponseDTO;
77
import no.nav.testnav.altinn3tilgangservice.consumer.altinn.dto.OrganisasjonDeleteDTO;
8-
import no.nav.testnav.libs.reactivecore.utils.WebClientFilter;
8+
import no.nav.testnav.libs.reactivecore.web.WebClientError;
99
import org.springframework.http.HttpHeaders;
1010
import org.springframework.http.HttpMethod;
1111
import org.springframework.http.MediaType;
@@ -48,6 +48,6 @@ public Mono<AltinnAccessListResponseDTO> call() {
4848
.map(data -> data.split(":"))
4949
.map(data -> data[data.length - 1])
5050
.collect(Collectors.joining())))
51-
.doOnError(WebClientFilter::logErrorMessage);
51+
.doOnError(WebClientError.logTo(log));
5252
}
5353
}

apps/altinn3-tilgang-service/src/main/java/no/nav/testnav/altinn3tilgangservice/consumer/altinn/command/GetAccessListMembersCommand.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import lombok.extern.slf4j.Slf4j;
55
import no.nav.testnav.altinn3tilgangservice.config.AltinnConfig;
66
import no.nav.testnav.altinn3tilgangservice.consumer.altinn.dto.AltinnAccessListResponseDTO;
7-
import no.nav.testnav.libs.reactivecore.utils.WebClientFilter;
7+
import no.nav.testnav.libs.reactivecore.web.WebClientError;
88
import org.springframework.http.HttpHeaders;
99
import org.springframework.http.MediaType;
1010
import org.springframework.web.reactive.function.client.WebClient;
@@ -33,7 +33,7 @@ public Mono<AltinnAccessListResponseDTO> call() {
3333
.header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
3434
.retrieve()
3535
.bodyToMono(AltinnAccessListResponseDTO.class)
36-
.doOnError(WebClientFilter::logErrorMessage)
36+
.doOnError(WebClientError.logTo(log))
3737
.doOnSuccess(value -> log.info("Altinn-tilgang hentet"));
3838
}
3939
}

apps/altinn3-tilgang-service/src/main/java/no/nav/testnav/altinn3tilgangservice/consumer/altinn/command/GetAuthorizedPartiesCommand.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import lombok.extern.slf4j.Slf4j;
55
import no.nav.testnav.altinn3tilgangservice.consumer.altinn.dto.AltinnAuthorizedPartiesRequestDTO;
66
import no.nav.testnav.altinn3tilgangservice.consumer.altinn.dto.AuthorizedPartyDTO;
7-
import no.nav.testnav.libs.reactivecore.utils.WebClientFilter;
7+
import no.nav.testnav.libs.reactivecore.web.WebClientError;
88
import org.springframework.http.HttpHeaders;
99
import org.springframework.http.MediaType;
1010
import org.springframework.web.reactive.function.client.WebClient;
@@ -35,6 +35,6 @@ public Mono<AuthorizedPartyDTO[]> call() {
3535
.bodyValue(request)
3636
.retrieve()
3737
.bodyToMono(AuthorizedPartyDTO[].class)
38-
.doOnError(WebClientFilter::logErrorMessage);
38+
.doOnError(WebClientError.logTo(log));
3939
}
4040
}

apps/altinn3-tilgang-service/src/main/java/no/nav/testnav/altinn3tilgangservice/consumer/altinn/command/GetExchangeTokenCommand.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import lombok.RequiredArgsConstructor;
44
import lombok.extern.slf4j.Slf4j;
5-
import no.nav.testnav.libs.reactivecore.utils.WebClientFilter;
5+
import no.nav.testnav.libs.reactivecore.web.WebClientError;
66
import org.springframework.http.HttpHeaders;
77
import org.springframework.http.MediaType;
88
import org.springframework.web.reactive.function.client.WebClient;
@@ -31,7 +31,7 @@ public Mono<String> call() {
3131
.header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
3232
.retrieve()
3333
.bodyToMono(String.class)
34-
.doOnError(WebClientFilter::logErrorMessage)
34+
.doOnError(WebClientError.logTo(log))
3535
.doOnSuccess(response -> log.info("Exchange token hentet fra Altinn"));
3636
}
3737
}

apps/altinn3-tilgang-service/src/main/java/no/nav/testnav/altinn3tilgangservice/consumer/altinn/dto/AltinnAccessListResponseDTO.java

+10
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
import lombok.Builder;
66
import lombok.Data;
77
import lombok.NoArgsConstructor;
8+
import no.nav.testnav.libs.reactivecore.web.WebClientError;
89
import org.springframework.http.HttpStatus;
10+
import reactor.core.publisher.Mono;
911

1012
import java.time.LocalDateTime;
1113
import java.util.ArrayList;
@@ -23,6 +25,14 @@ public class AltinnAccessListResponseDTO {
2325
private String feilmelding;
2426
private HttpStatus status;
2527

28+
public static Mono<AltinnAccessListResponseDTO> of(WebClientError.Description description) {
29+
return Mono.just(AltinnAccessListResponseDTO
30+
.builder()
31+
.status(description.getStatus())
32+
.feilmelding(description.getMessage())
33+
.build());
34+
}
35+
2636
public List<AccessListMembershipDTO> getData() {
2737

2838
if (isNull(data)) {

apps/altinn3-tilgang-service/src/main/java/no/nav/testnav/altinn3tilgangservice/consumer/brreg/BrregConsumer.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@ public class BrregConsumer {
1313

1414
private final WebClient webClient;
1515

16-
public BrregConsumer(WebClient.Builder webClientBuilder) {
17-
this.webClient = webClientBuilder
16+
public BrregConsumer(WebClient webClient) {
17+
this.webClient = webClient
18+
.mutate()
1819
.baseUrl(BRREG_URL)
1920
.build();
2021
}

apps/altinn3-tilgang-service/src/main/java/no/nav/testnav/altinn3tilgangservice/consumer/brreg/command/GetBrregEnheterCommand.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import lombok.RequiredArgsConstructor;
44
import lombok.extern.slf4j.Slf4j;
55
import no.nav.testnav.altinn3tilgangservice.consumer.altinn.dto.BrregResponseDTO;
6-
import no.nav.testnav.libs.reactivecore.utils.WebClientFilter;
6+
import no.nav.testnav.libs.reactivecore.web.WebClientError;
77
import org.springframework.http.HttpHeaders;
88
import org.springframework.http.MediaType;
99
import org.springframework.web.reactive.function.client.WebClient;
@@ -32,6 +32,6 @@ public Mono<BrregResponseDTO> call() {
3232
.header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
3333
.retrieve()
3434
.bodyToMono(BrregResponseDTO.class)
35-
.doOnError(WebClientFilter::logErrorMessage);
35+
.doOnError(WebClientError.logTo(log));
3636
}
3737
}

apps/altinn3-tilgang-service/src/main/java/no/nav/testnav/altinn3tilgangservice/consumer/maskinporten/MaskinportenConsumer.java

+2-6
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.nimbusds.jose.jwk.RSAKey;
88
import com.nimbusds.jwt.JWTClaimsSet;
99
import com.nimbusds.jwt.SignedJWT;
10+
import lombok.RequiredArgsConstructor;
1011
import lombok.SneakyThrows;
1112
import lombok.extern.slf4j.Slf4j;
1213
import no.nav.testnav.altinn3tilgangservice.config.MaskinportenConfig;
@@ -23,17 +24,12 @@
2324

2425
@Slf4j
2526
@Component
27+
@RequiredArgsConstructor
2628
public class MaskinportenConsumer {
2729

2830
private final WebClient webClient;
2931
private final MaskinportenConfig maskinportenConfig;
3032

31-
public MaskinportenConsumer(MaskinportenConfig maskinportenConfig, WebClient.Builder webClientBuilder) {
32-
33-
this.webClient = webClientBuilder.build();
34-
this.maskinportenConfig = maskinportenConfig;
35-
}
36-
3733
public Mono<String> getAccessToken() {
3834

3935
return new GetWellKnownCommand(webClient, maskinportenConfig).call()

apps/altinn3-tilgang-service/src/main/java/no/nav/testnav/altinn3tilgangservice/consumer/maskinporten/command/GetAccessTokenCommand.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import lombok.extern.slf4j.Slf4j;
55
import no.nav.testnav.altinn3tilgangservice.consumer.maskinporten.dto.AccessToken;
66
import no.nav.testnav.altinn3tilgangservice.consumer.maskinporten.dto.WellKnown;
7-
import no.nav.testnav.libs.reactivecore.utils.WebClientFilter;
7+
import no.nav.testnav.libs.reactivecore.web.WebClientError;
88
import org.springframework.web.reactive.function.BodyInserters;
99
import org.springframework.web.reactive.function.client.WebClient;
1010
import reactor.core.publisher.Mono;
@@ -31,7 +31,7 @@ public Mono<AccessToken> call() {
3131
.retrieve()
3232
.bodyToMono(AccessToken.class)
3333
.doOnSuccess(value -> log.info("AccessToken hentet fra maskinporten."))
34-
.doOnError(WebClientFilter::logErrorMessage)
34+
.doOnError(WebClientError.logTo(log))
3535
.cache(Duration.ofSeconds(10L));
3636
}
3737
}

apps/altinn3-tilgang-service/src/main/java/no/nav/testnav/altinn3tilgangservice/consumer/maskinporten/command/GetWellKnownCommand.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import lombok.extern.slf4j.Slf4j;
55
import no.nav.testnav.altinn3tilgangservice.config.MaskinportenConfig;
66
import no.nav.testnav.altinn3tilgangservice.consumer.maskinporten.dto.WellKnown;
7-
import no.nav.testnav.libs.reactivecore.utils.WebClientFilter;
7+
import no.nav.testnav.libs.reactivecore.web.WebClientError;
88
import org.springframework.web.reactive.function.client.WebClient;
99
import reactor.core.publisher.Mono;
1010

@@ -26,7 +26,7 @@ public Mono<WellKnown> call() {
2626
.retrieve()
2727
.bodyToMono(WellKnown.class)
2828
.doOnSuccess(value -> log.info("WellKnown hentet for maskinporten."))
29-
.doOnError(WebClientFilter::logErrorMessage)
29+
.doOnError(WebClientError.logTo(log))
3030
.cache(Duration.ofDays(1L));
3131
}
3232
}

apps/altinn3-tilgang-service/src/main/resources/logback-spring.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
<springProfile name="prod,dev">
55
<appender name="stdout_json" class="ch.qos.logback.core.ConsoleAppender">
6-
<encoder class="no.nav.testnav.libs.reactivecore.logging.TestnavLogbackEncoder">
6+
<encoder class="no.nav.dolly.libs.logging.DollyLogstashEncoder">
77
<maxStackTraceLength>-1</maxStackTraceLength>
88
<addCauses>true</addCauses>
99
<stackTraceIncludePrefix>-</stackTraceIncludePrefix>

apps/app-tilgang-analyse-service/src/main/java/no/nav/testnav/apps/apptilganganalyseservice/consumer/GithubConsumer.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ public class GithubConsumer {
2020

2121
public GithubConsumer(@Value("${consumers.github.url}") String url,
2222
@Value("${consumers.github.token}") String token,
23-
WebClient.Builder webClientBuilder) {
24-
25-
this.webClient = webClientBuilder
23+
WebClient webClient) {
24+
this.webClient = webClient
25+
.mutate()
2626
.baseUrl(url)
2727
.defaultHeader(HttpHeaders.AUTHORIZATION, "token " + token)
2828
.exchangeStrategies(ExchangeStrategies.builder()

0 commit comments

Comments
 (0)