Skip to content

Commit d51504f

Browse files
committed
feat(audit): add audit log on consent update
1 parent b0d5725 commit d51504f

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

src/main/java/it/pagopa/selfcare/pagopa/backoffice/service/InstitutionServicesService.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,41 @@
11
package it.pagopa.selfcare.pagopa.backoffice.service;
22

3+
import it.pagopa.selfcare.pagopa.backoffice.audit.AuditLogger;
34
import it.pagopa.selfcare.pagopa.backoffice.client.ExternalApiClient;
45
import it.pagopa.selfcare.pagopa.backoffice.config.InstitutionServicesConfig;
56
import it.pagopa.selfcare.pagopa.backoffice.entity.InstitutionRTPServiceEntity;
67
import it.pagopa.selfcare.pagopa.backoffice.exception.AppError;
78
import it.pagopa.selfcare.pagopa.backoffice.exception.AppException;
89
import it.pagopa.selfcare.pagopa.backoffice.model.institutions.*;
910
import it.pagopa.selfcare.pagopa.backoffice.model.institutions.client.Institution;
11+
import it.pagopa.selfcare.pagopa.backoffice.util.Utility;
12+
import lombok.extern.slf4j.Slf4j;
1013
import org.springframework.beans.factory.annotation.Autowired;
1114
import org.springframework.data.mongodb.repository.MongoRepository;
15+
import org.springframework.security.core.context.SecurityContextHolder;
1216
import org.springframework.stereotype.Service;
1317

1418
import java.time.Instant;
1519
import java.time.ZoneId;
1620
import java.util.List;
1721

1822
@Service
23+
@Slf4j
1924
public class InstitutionServicesService {
2025
private final MongoRepository<InstitutionRTPServiceEntity, String> rtpServiceRepository;
2126
private final ExternalApiClient externalApiClient;
2227
private final InstitutionServicesConfig servicesConfig;
28+
private final AuditLogger auditLogger;
2329
private static final String ORIGIN_IPA = "IPA";
2430

2531
@Autowired
2632
public InstitutionServicesService(MongoRepository<InstitutionRTPServiceEntity, String> rtpServiceRepository,
27-
ExternalApiClient externalApiClient, InstitutionServicesConfig servicesConfig){
33+
ExternalApiClient externalApiClient, InstitutionServicesConfig servicesConfig,
34+
AuditLogger auditLogger){
2835
this.rtpServiceRepository = rtpServiceRepository;
2936
this.externalApiClient = externalApiClient;
3037
this.servicesConfig = servicesConfig;
38+
this.auditLogger = auditLogger;
3139
}
3240

3341
public ServiceConsentResponse saveServiceConsent(ServiceConsentRequest serviceConsentRequest,
@@ -55,6 +63,13 @@ public ServiceConsentResponse saveServiceConsent(ServiceConsentRequest serviceCo
5563
.consentDate(Instant.now())
5664
.build();
5765
rtpServiceRepository.save(entity);
66+
auditLogger.info(log,
67+
"event=CONSENT_UPDATE outcome=SUCCESS institutionId={} serviceId={} userId={} institutionTaxCode={} consent={}",
68+
institutionId,
69+
serviceId,
70+
Utility.extractUserIdFromAuth(SecurityContextHolder.getContext().getAuthentication()),
71+
institution.getTaxCode(),
72+
serviceConsentRequest.getConsent());
5873
response = new ServiceConsentResponse(serviceConsentRequest.getConsent(),
5974
entity.getConsentDate().atZone(ZoneId.of("Europe/Rome")).toOffsetDateTime());
6075
break;

0 commit comments

Comments
 (0)