Skip to content

Commit

Permalink
Felles 405 u/sporingslogg, filtrer parametre (#197)
Browse files Browse the repository at this point in the history
  • Loading branch information
jolarsen authored Aug 17, 2021
1 parent 346b6ee commit c9d0b07
Show file tree
Hide file tree
Showing 9 changed files with 30 additions and 218 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@
<artifactId>felles</artifactId>
<scope>import</scope>
<type>pom</type>
<version>4.0.3</version>
<version>4.0.5</version>
</dependency>

<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,17 +33,13 @@
import no.nav.vedtak.felles.prosesstask.rest.app.ProsessTaskApplikasjonTjeneste;
import no.nav.vedtak.felles.prosesstask.rest.dto.FeiletProsessTaskDataDto;
import no.nav.vedtak.felles.prosesstask.rest.dto.ProsessTaskDataDto;
import no.nav.vedtak.felles.prosesstask.rest.dto.ProsessTaskDataInfo;
import no.nav.vedtak.felles.prosesstask.rest.dto.ProsessTaskDataPayloadDto;
import no.nav.vedtak.felles.prosesstask.rest.dto.ProsessTaskIdDto;
import no.nav.vedtak.felles.prosesstask.rest.dto.ProsessTaskOpprettInputDto;
import no.nav.vedtak.felles.prosesstask.rest.dto.ProsessTaskRestartInputDto;
import no.nav.vedtak.felles.prosesstask.rest.dto.ProsessTaskRestartResultatDto;
import no.nav.vedtak.felles.prosesstask.rest.dto.ProsessTaskRetryAllResultatDto;
import no.nav.vedtak.felles.prosesstask.rest.dto.ProsessTaskSetFerdigInputDto;
import no.nav.vedtak.felles.prosesstask.rest.dto.SokeFilterDto;
import no.nav.vedtak.log.sporingslogg.Sporingsdata;
import no.nav.vedtak.log.sporingslogg.SporingsloggHelper;
import no.nav.vedtak.sikkerhet.abac.BeskyttetRessurs;
import no.nav.vedtak.sikkerhet.abac.TilpassetAbacAttributt;

Expand Down Expand Up @@ -125,11 +121,6 @@ public ProsessTaskRetryAllResultatDto retryAllProsessTask() {
public List<ProsessTaskDataDto> finnProsessTasks(@Parameter(description = "Søkefilter for å begrense resultatet av returnerte prosesstask.") @TilpassetAbacAttributt(supplierClass = AbacEmptySupplier.class) @Valid SokeFilterDto sokeFilterDto) {
List<ProsessTaskDataDto> resultat = prosessTaskApplikasjonTjeneste.finnAlle(sokeFilterDto);

// må logge tilgang til personopplysninger, det blir ikke logget nok via @BeskyttetRessurs siden det er rolle-tilgang her
for (ProsessTaskDataDto dto : resultat) {
loggLesingAvPersondataFraProsessTask(dto, "/list");
}

return resultat;
}

Expand All @@ -145,31 +136,6 @@ public List<ProsessTaskDataDto> finnProsessTasks(@Parameter(description = "Søke
public Response finnFeiletProsessTask(@NotNull @Parameter(description = "Prosesstask-id for feilet prosesstask") @TilpassetAbacAttributt(supplierClass = AbacEmptySupplier.class) @Valid ProsessTaskIdDto prosessTaskIdDto) {
Optional<FeiletProsessTaskDataDto> resultat = prosessTaskApplikasjonTjeneste.finnFeiletProsessTask(prosessTaskIdDto.getProsessTaskId());
if (resultat.isPresent()) {

// må logge tilgang til personopplysninger, det blir ikke logget nok via @BeskyttetRessurs siden det er rolle-tilgang her
loggLesingAvPersondataFraProsessTask(resultat.get(), "/no/nav/vedtak/felles/behandlingsprosess/prosesstask/rest/feil");

return Response.ok(resultat.get()).build();
}
return Response.status(HttpStatus.SC_NOT_FOUND).build();
}

@POST
@Path("/payload")
@Consumes(MediaType.APPLICATION_JSON)
@Operation(description = "Henter informasjon om prosesstask, inkludert payload for angitt prosesstask-id", tags = "prosesstask", responses = {
@ApiResponse(responseCode = "200", description = "Angit prosesstask-id finnes", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ProsessTaskDataPayloadDto.class))),
@ApiResponse(responseCode = "404", description = "Tom respons når angitt prosesstask-id ikke finnes"),
@ApiResponse(responseCode = "400", description = "Feil input")
})
@BeskyttetRessurs(action = READ, property = ABAC_DRIFT_ATTRIBUTT)
public Response finnProsessTaskInkludertPayload(@NotNull @Parameter(description = "Prosesstask-id for en eksisterende prosesstask") @TilpassetAbacAttributt(supplierClass = AbacEmptySupplier.class) @Valid ProsessTaskIdDto prosessTaskIdDto) {
Optional<ProsessTaskDataPayloadDto> resultat = prosessTaskApplikasjonTjeneste.finnProsessTaskMedPayload(prosessTaskIdDto.getProsessTaskId());
if (resultat.isPresent()) {

// må logge tilgang til personopplysninger, det blir ikke logget nok via @BeskyttetRessurs siden det er rolle-tilgang her
loggLesingAvPersondataFraProsessTask(resultat.get(), "/payload");

return Response.ok(resultat.get()).build();
}
return Response.status(HttpStatus.SC_NOT_FOUND).build();
Expand All @@ -188,10 +154,4 @@ public Response setFeiletProsessTaskFerdig(@NotNull @Parameter(description = "Pr
return Response.ok().build();
}

private void loggLesingAvPersondataFraProsessTask(ProsessTaskDataInfo prosessTaskInfo, String metode) {
String actionType = "read";
String endepunkt = ProsessTaskRestTjeneste.class.getAnnotation(Path.class).value() + metode;
Optional<Sporingsdata> sporingsdata = prosessTaskInfo.lagSporingsloggData(metode);
sporingsdata.ifPresent(sd -> SporingsloggHelper.logSporing(ProsessTaskRestTjeneste.class, sd, actionType, endepunkt));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
import no.nav.vedtak.felles.prosesstask.rest.dto.FeiletProsessTaskDataDto;
import no.nav.vedtak.felles.prosesstask.rest.dto.ProsessTaskDataDto;
import no.nav.vedtak.felles.prosesstask.rest.dto.ProsessTaskDataKonverter;
import no.nav.vedtak.felles.prosesstask.rest.dto.ProsessTaskDataPayloadDto;
import no.nav.vedtak.felles.prosesstask.rest.dto.ProsessTaskOpprettInputDto;
import no.nav.vedtak.felles.prosesstask.rest.dto.ProsessTaskRestartInputDto;
import no.nav.vedtak.felles.prosesstask.rest.dto.ProsessTaskRestartResultatDto;
Expand Down Expand Up @@ -71,11 +70,6 @@ public Optional<FeiletProsessTaskDataDto> finnFeiletProsessTask(Long prosessTask
return Optional.empty();
}

public Optional<ProsessTaskDataPayloadDto> finnProsessTaskMedPayload(Long prosessTaskId) {
ProsessTaskData taskData = prosessTaskRepository.finn(prosessTaskId);
return taskData == null ? Optional.empty() : Optional.of(ProsessTaskDataKonverter.tilProsessTaskDataPayloadDto(taskData));
}

public void setProsessTaskFerdig(Long prosessTaskId, ProsessTaskStatus status) {
ProsessTaskData taskData = prosessTaskRepository.finn(prosessTaskId);
if (taskData == null) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package no.nav.vedtak.felles.prosesstask.rest.dto;

import java.util.Optional;

import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;

Expand All @@ -13,13 +11,12 @@
import com.fasterxml.jackson.annotation.JsonUnwrapped;

import io.swagger.v3.oas.annotations.media.Schema;
import no.nav.vedtak.log.sporingslogg.Sporingsdata;

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY)
@Schema
public class FeiletProsessTaskDataDto implements ProsessTaskDataInfo {
public class FeiletProsessTaskDataDto {

@JsonProperty(value="sisteKjøringServerProsess")
@Size(max=100)
Expand Down Expand Up @@ -71,9 +68,4 @@ public ProsessTaskDataDto getProsessTaskDataDto() {
public void setProsessTaskDataDto(ProsessTaskDataDto prosessTaskDataDto) {
this.prosessTaskDataDto = prosessTaskDataDto;
}

@Override
public Optional<Sporingsdata> lagSporingsloggData(String action) {
return prosessTaskDataDto.lagSporingsloggData(action);
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package no.nav.vedtak.felles.prosesstask.rest.dto;

import java.time.LocalDateTime;
import java.util.Optional;
import java.util.Properties;

import javax.validation.Valid;
Expand All @@ -15,19 +14,12 @@
import com.fasterxml.jackson.annotation.JsonProperty;

import io.swagger.v3.oas.annotations.media.Schema;
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskSporingsloggId;
import no.nav.vedtak.log.sporingslogg.Sporingsdata;

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY)
@Schema
public class ProsessTaskDataDto implements ProsessTaskDataInfo {

private static final String AKTØR_ID = "aktoerId";
private static final String BEHANDLING_ID = "behandlingId";
private static final String FAGSAK_ID = "fagsakId";
private static final String PNR_ID = "personidentifikator";
public class ProsessTaskDataDto {

@JsonProperty(value = "id", required = true)
private Long id;
Expand Down Expand Up @@ -144,31 +136,4 @@ public void setTaskParametre(Properties taskParametre) {
this.taskParametre = taskParametre;
}

@Override
public Optional<Sporingsdata> lagSporingsloggData(String action) {

String aktørId = taskParametre.getProperty(AKTØR_ID);
String fagsakId = taskParametre.getProperty(FAGSAK_ID);
String behandlingId = taskParametre.getProperty(BEHANDLING_ID);
String pnrId = taskParametre.getProperty(PNR_ID);

if (aktørId == null && fagsakId == null && behandlingId == null && pnrId == null) {
return Optional.empty();
}

Sporingsdata sporingsdata = Sporingsdata.opprett(action);
if (aktørId != null) {
sporingsdata.leggTilId(ProsessTaskSporingsloggId.AKTOR_ID.getSporingsloggKode(), aktørId);
}
if (fagsakId != null) {
sporingsdata.leggTilId(ProsessTaskSporingsloggId.FAGSAK_ID.getSporingsloggKode(), fagsakId);
}
if (behandlingId != null) {
sporingsdata.leggTilId(ProsessTaskSporingsloggId.BEHANDLING_ID.getSporingsloggKode(), behandlingId);
}
if (pnrId != null) {
sporingsdata.leggTilId(ProsessTaskSporingsloggId.FNR.getSporingsloggKode(), pnrId);
}
return Optional.of(sporingsdata);
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
package no.nav.vedtak.felles.prosesstask.rest.dto;

import java.util.Properties;
import java.util.Set;

import no.nav.vedtak.felles.prosesstask.api.ProsessTaskData;

public class ProsessTaskDataKonverter {

private static final Set<String> EXTRACT_PARAMS = Set.of("behandlingid", "behandlinguuid", "fagsakid", "saksnummer");

private ProsessTaskDataKonverter() {
}

Expand All @@ -18,7 +23,7 @@ public static ProsessTaskDataDto tilProsessTaskDataDto(ProsessTaskData data) {
dto.setStatus(data.getStatus().getDbKode());
dto.setSistKjørt(data.getSistKjørt());
dto.setSisteFeilKode(data.getSisteFeilKode());
dto.setTaskParametre(data.getProperties());
dto.setTaskParametre(filtrerProperties(data.getProperties()));

return dto;
}
Expand All @@ -35,18 +40,12 @@ public static FeiletProsessTaskDataDto tilFeiletProsessTaskDataDto(ProsessTaskDa
return dto;
}

public static ProsessTaskDataPayloadDto tilProsessTaskDataPayloadDto(ProsessTaskData data) {
ProsessTaskDataPayloadDto dto = new ProsessTaskDataPayloadDto();

dto.setProsessTaskDataDto(tilProsessTaskDataDto(data));

dto.setFeiledeForsøk(data.getAntallFeiledeForsøk());
dto.setSisteFeilTekst(data.getSisteFeil());
dto.setSisteKjøringServerProsess(data.getSisteKjøringServerProsess());

dto.setPayload(data.getPayloadAsString());

return dto;
private static Properties filtrerProperties(Properties input) {
var output = new Properties();
input.stringPropertyNames().stream()
.filter(p -> EXTRACT_PARAMS.contains(p.toLowerCase()))
.forEach(p -> output.setProperty(p, input.getProperty(p)));
return output;
}

}

This file was deleted.

Loading

0 comments on commit c9d0b07

Please sign in to comment.