Skip to content

Commit e6a8e41

Browse files
authored
Merge branch 'master' into feature/ny-dialog-for-banckid-pålogging
2 parents ca9ab09 + a2cd947 commit e6a8e41

File tree

8 files changed

+81
-58
lines changed

8 files changed

+81
-58
lines changed

apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/PdlForvalterApplicationStarter.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@ public static void main(String[] args) {
1010

1111
SpringApplication.run(PdlForvalterApplicationStarter.class, args);
1212
}
13-
}
13+
}

apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/controller/PersonController.java

-6
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@
5151
import org.springframework.web.bind.annotation.RequestHeader;
5252
import org.springframework.web.bind.annotation.RequestMapping;
5353
import org.springframework.web.bind.annotation.RequestParam;
54-
import org.springframework.web.bind.annotation.ResponseBody;
5554
import org.springframework.web.bind.annotation.RestController;
5655

5756
import java.util.List;
@@ -72,7 +71,6 @@ public class PersonController {
7271
private final ArtifactUpdateService artifactUpdateService;
7372
private final MetadataTidspunkterService metadataTidspunkterService;
7473

75-
@ResponseBody
7674
@GetMapping
7775
@Operation(description = "Hent person(er) med angitt(e) ident(er) eller alle")
7876
public List<FullPersonDTO> getPerson(@Parameter(description = "Ident(er) på personer som skal hentes")
@@ -96,15 +94,13 @@ public List<FullPersonDTO> getPerson(@Parameter(description = "Ident(er) på per
9694
.build());
9795
}
9896

99-
@ResponseBody
10097
@PostMapping
10198
@Operation(description = "Opprett person basert på angitte informasjonselementer, minimum er {}")
10299
public String createPerson(@RequestBody BestillingRequestDTO request) {
103100

104101
return personService.createPerson(request);
105102
}
106103

107-
@ResponseBody
108104
@PutMapping(value = "/{ident}")
109105
@Operation(description = "Oppdater testperson basert på angitte informasjonselementer")
110106
public String updatePerson(@Parameter(description = "Ident på testperson som skal oppdateres")
@@ -119,7 +115,6 @@ public String updatePerson(@Parameter(description = "Ident på testperson som sk
119115
}
120116

121117
@Transactional
122-
@ResponseBody
123118
@PostMapping(value = "/{ident}/ordre")
124119
@Operation(description = "Send angitte testperson(er) med relasjoner til PDL")
125120
public OrdreResponseDTO sendPersonTilPdl(@Parameter(description = "Ident på hovedperson som skal sendes")
@@ -132,7 +127,6 @@ public OrdreResponseDTO sendPersonTilPdl(@Parameter(description = "Ident på hov
132127
return pdlOrdreService.send(ident, ekskluderEksternePersoner);
133128
}
134129

135-
@ResponseBody
136130
@DeleteMapping(value = "/{ident}")
137131
@Operation(description = "Slett person")
138132
public void deletePerson(@Parameter(description = "Slett angitt testperson med relasjoner")

apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/service/DoedsfallService.java

+27-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package no.nav.pdl.forvalter.service;
22

3+
import lombok.RequiredArgsConstructor;
4+
import no.nav.pdl.forvalter.database.repository.PersonRepository;
35
import no.nav.pdl.forvalter.exception.InvalidRequestException;
46
import no.nav.testnav.libs.data.pdlforvalter.v1.DoedsfallDTO;
57
import no.nav.testnav.libs.data.pdlforvalter.v1.PersonDTO;
8+
import no.nav.testnav.libs.data.pdlforvalter.v1.SivilstandDTO;
69
import org.springframework.stereotype.Service;
710

8-
import java.util.ArrayList;
911
import java.util.Comparator;
1012
import java.util.List;
1113

@@ -14,11 +16,14 @@
1416
import static no.nav.pdl.forvalter.utils.ArtifactUtils.getMaster;
1517
import static no.nav.pdl.forvalter.utils.ArtifactUtils.renumberId;
1618
import static org.apache.commons.lang3.BooleanUtils.isTrue;
19+
import static org.apache.commons.lang3.StringUtils.isNotBlank;
1720

1821
@Service
22+
@RequiredArgsConstructor
1923
public class DoedsfallService implements Validation<DoedsfallDTO> {
2024

2125
private static final String INVALID_DATO_MISSING = "Dødsfall: dødsdato må oppgis";
26+
private final PersonRepository personRepository;
2227

2328
public List<DoedsfallDTO> convert(PersonDTO person) {
2429

@@ -30,14 +35,33 @@ public List<DoedsfallDTO> convert(PersonDTO person) {
3035
}
3136
}
3237

33-
person.setDoedsfall(new ArrayList<>(person.getDoedsfall()));
34-
3538
person.getDoedsfall().sort(Comparator.comparing(DoedsfallDTO::getDoedsdato).reversed());
3639
renumberId(person.getDoedsfall());
3740

41+
handle(person);
42+
3843
return person.getDoedsfall();
3944
}
4045

46+
private void handle(PersonDTO person) {
47+
48+
if (!person.getSivilstand().isEmpty() &&
49+
isNotBlank(person.getSivilstand().getFirst().getRelatertVedSivilstand()) &&
50+
person.getSivilstand().getFirst().isGift()) {
51+
52+
personRepository.findByIdent(person.getSivilstand().getFirst().getRelatertVedSivilstand())
53+
.ifPresent(person1 ->
54+
person1.getPerson().getSivilstand().addFirst(
55+
SivilstandDTO.builder()
56+
.type(person.getSivilstand().getFirst().getGjenlevendeSivilstand())
57+
.sivilstandsdato(person.getDoedsfall().getFirst().getDoedsdato())
58+
.kilde(person.getDoedsfall().getFirst().getKilde())
59+
.master(person.getDoedsfall().getFirst().getMaster())
60+
.id(person1.getPerson().getSivilstand().size() + 1)
61+
.build()));
62+
}
63+
}
64+
4165
@Override
4266
public void validate(DoedsfallDTO type) {
4367

apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/service/MetadataTidspunkterService.java

+24-20
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package no.nav.pdl.forvalter.service;
22

33
import lombok.RequiredArgsConstructor;
4+
import ma.glasnost.orika.MapperFacade;
45
import no.nav.pdl.forvalter.database.model.DbPerson;
56
import no.nav.pdl.forvalter.database.model.DbRelasjon;
67
import no.nav.pdl.forvalter.database.repository.PersonRepository;
@@ -30,7 +31,7 @@
3031
import java.time.LocalDateTime;
3132
import java.util.Comparator;
3233
import java.util.List;
33-
import java.util.concurrent.atomic.AtomicInteger;
34+
import java.util.concurrent.atomic.AtomicReference;
3435

3536
import static java.util.Objects.isNull;
3637
import static java.util.Objects.nonNull;
@@ -40,6 +41,7 @@
4041
public class MetadataTidspunkterService {
4142

4243
private final PersonRepository personRepository;
44+
private final MapperFacade mapperFacade;
4345

4446
public void updateMetadata(String ident) {
4547

@@ -221,31 +223,33 @@ private static void fixSikkerhetstiltak(SikkerhetstiltakDTO sikkerhetstiltakDTO)
221223
sikkerhetstiltakDTO.getFolkeregistermetadata().setOpphoerstidspunkt(sikkerhetstiltakDTO.getGyldigTilOgMed());
222224
}
223225

224-
private static void fixSivilstand(PersonDTO person) {
226+
private void fixSivilstand(PersonDTO person) {
225227

226228
person.getSivilstand().sort(Comparator.comparing(SivilstandDTO::getId).reversed());
227229

228-
var counter = new AtomicInteger(0);
229-
person.getSivilstand()
230+
var sivilstandCopy = mapperFacade.mapAsList(person.getSivilstand(), SivilstandDTO.class);
231+
var dato = new AtomicReference<>(LocalDateTime.now());
232+
233+
sivilstandCopy
230234
.forEach(sivilstand -> {
231-
fixFolkeregisterMetadata(sivilstand);
232-
if (isNull(sivilstand.getFolkeregistermetadata().getGyldighetstidspunkt())) {
233-
234-
LocalDateTime gyldighetstidspunkt;
235-
if (nonNull(sivilstand.getSivilstandsdato())) {
236-
gyldighetstidspunkt = sivilstand.getSivilstandsdato();
237-
} else if (nonNull(sivilstand.getBekreftelsesdato())) {
238-
gyldighetstidspunkt = sivilstand.getBekreftelsesdato();
239-
} else {
240-
gyldighetstidspunkt = LocalDateTime.now().minusYears(counter.incrementAndGet());
241-
}
242-
sivilstand.getFolkeregistermetadata().setGyldighetstidspunkt(gyldighetstidspunkt);
243-
}
244-
if (isNull(sivilstand.getFolkeregistermetadata().getAjourholdstidspunkt())) {
245-
sivilstand.getFolkeregistermetadata().setAjourholdstidspunkt(
246-
sivilstand.getFolkeregistermetadata().getGyldighetstidspunkt());
235+
if (isNull(sivilstand.getSivilstandsdato()) && isNull(sivilstand.getBekreftelsesdato())) {
236+
237+
sivilstand.setSivilstandsdato(dato.get());
238+
dato.set(dato.get().minusYears(1));
239+
240+
} else {
241+
var sivilstandsdato = nonNull(sivilstand.getSivilstandsdato()) ? sivilstand.getSivilstandsdato() : sivilstand.getBekreftelsesdato();
242+
sivilstand.setSivilstandsdato(sivilstandsdato);
243+
dato.set(sivilstandsdato.minusYears(1));
247244
}
248245
});
246+
247+
for (int i = 0; i < person.getSivilstand().size(); i++) {
248+
249+
var sivilstand = person.getSivilstand().get(i);
250+
fixFolkeregisterMetadata(sivilstand);
251+
sivilstand.getFolkeregistermetadata().setAjourholdstidspunkt(sivilstandCopy.get(i).getSivilstandsdato());
252+
}
249253
}
250254

251255
private static void fixStatsborgerskap(StatsborgerskapDTO statsborgerskapDTO) {

apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/service/PersonArtifactService.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,14 @@ public PersonDTO buildPerson(PersonDTO person, Boolean relaxed) {
5555
person.setUtflytting(utflyttingService.convert(person));
5656
person.setOpphold(oppholdService.convert(person.getOpphold()));
5757
person.setTilrettelagtKommunikasjon(tilrettelagtKommunikasjonService.convert(person.getTilrettelagtKommunikasjon()));
58+
person.setSivilstand(sivilstandService.convert(person));
5859
person.setDoedsfall(doedsfallService.convert(person));
5960
person.setFullmakt(fullmaktService.convert(person));
6061
person.setKontaktadresse(kontaktAdresseService.convert(person, relaxed));
6162
person.setUtenlandskIdentifikasjonsnummer(utenlandsidentifikasjonsnummerService.convert(person));
6263
person.setVergemaal(vergemaalService.convert(person));
6364
person.setFalskIdentitet(falskIdentitetService.convert(person));
6465
person.setKontaktinformasjonForDoedsbo(kontaktinformasjonForDoedsboService.convert(person));
65-
person.setSivilstand(sivilstandService.convert(person));
6666
person.setForelderBarnRelasjon(forelderBarnRelasjonService.convert(person));
6767
person.setForeldreansvar(foreldreansvarService.convert(person));
6868
person.setDoedfoedtBarn(doedfoedtBarnService.convert(person.getDoedfoedtBarn()));

libs/data-transfer-search-objects/src/main/java/no/nav/testnav/libs/data/pdlforvalter/v1/SivilstandDTO.java

+11
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,17 @@ public boolean hasRelatertVedSivilstand() {
9696
}
9797

9898
@JsonIgnore
99+
public Sivilstand getGjenlevendeSivilstand() {
100+
101+
return switch (type) {
102+
case GIFT -> Sivilstand.ENKE_ELLER_ENKEMANN;
103+
case REGISTRERT_PARTNER -> Sivilstand.GJENLEVENDE_PARTNER;
104+
default -> type;
105+
};
106+
}
107+
108+
@JsonIgnore
109+
@Override
99110
public String getIdentForRelasjon() {
100111
return relatertVedSivilstand;
101112
}

libs/reactive-core/src/main/java/no/nav/testnav/libs/reactivecore/logging/TestnavLogbackEncoder.java

+9-10
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@
3333
public class TestnavLogbackEncoder extends LogstashEncoder {
3434

3535
// matches exactly 11 digits (\\d{11}) that are not immediately preceded ((?<!\\d)) or followed ((?!\\d)) by another digit.
36-
private final Pattern identNummer = Pattern.compile("(?<!\\d)\\d{11}(?!\\d)");
37-
private final Pattern bearer = Pattern.compile("Bearer [a-zA-Z0-9\\-_.]+");
36+
private static final Pattern IDENT = Pattern.compile("(?<!\\d)\\d{11}(?!\\d)");
37+
private static final Pattern BEARER = Pattern.compile("Bearer [a-zA-Z0-9\\-_.]+");
3838
@Setter
3939
private int maxStackTraceLength = 480;
4040

@@ -113,15 +113,14 @@ private void appendStackTraceCauses(ThrowableProxy exception, StringWriter write
113113
}
114114

115115
private String formatMessage(String message) {
116-
message = identNummer.matcher(message).replaceAll(match -> {
117-
if (match.group().charAt(2) < '4') {
118-
return match.group().substring(0, 6) + "xxxxx";
119-
}
120-
return match.group();
121-
});
122116

123-
message = bearer.matcher(message).replaceAll("REDACTED_BEARER");
117+
message = IDENT.matcher(message).replaceAll(match ->
118+
119+
match.group().charAt(2) < '4' ?
120+
match.group().substring(0, 6) + "xxxxx" :
121+
match.group().substring(0, 11) + "x"
122+
);
124123

125-
return message;
124+
return BEARER.matcher(message).replaceAll("Bearer token");
126125
}
127126
}

libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/logging/TestnavLogbackEncoder.java

+8-17
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@
3333
public class TestnavLogbackEncoder extends LogstashEncoder {
3434

3535
// matches exactly 11 digits (\\d{11}) that are not immediately preceded ((?<!\\d)) or followed ((?!\\d)) by another digit.
36-
private final Pattern pattern = Pattern.compile("(?<!\\d)\\d{11}(?!\\d)");
36+
private static final Pattern IDENT = Pattern.compile("(?<!\\d)\\d{11}(?!\\d)");
37+
private static final Pattern BEARER = Pattern.compile("Bearer [a-zA-Z0-9\\-_.]+");
3738

3839
@Setter
3940
private int maxStackTraceLength = 480;
@@ -113,24 +114,14 @@ private void appendStackTraceCauses(ThrowableProxy exception, StringWriter write
113114
}
114115

115116
private String formatMessage(String message) {
116-
var matcher = pattern.matcher(message);
117117

118-
if (!matcher.find()) {
119-
return message;
120-
}
121-
122-
matcher.reset();
123-
var result = new StringBuilder();
118+
message = IDENT.matcher(message).replaceAll(match ->
124119

125-
while (matcher.find()) {
126-
var match = matcher.group();
127-
if (match.charAt(2) == '0' || match.charAt(2) == '1') {
128-
var replacement = match.substring(0, 6) + "xxxxx";
129-
matcher.appendReplacement(result, replacement);
130-
}
131-
}
132-
matcher.appendTail(result);
120+
match.group().charAt(2) < '4' ?
121+
match.group().substring(0, 6) + "xxxxx" :
122+
match.group().substring(0, 11) + "x"
123+
);
133124

134-
return result.toString();
125+
return BEARER.matcher(message).replaceAll("Bearer token");
135126
}
136127
}

0 commit comments

Comments
 (0)