From 0e07607e23cf858f5dd66ddb2312a22d818a0614 Mon Sep 17 00:00:00 2001 From: rmiccoli Date: Fri, 4 Mar 2022 11:40:39 +0100 Subject: [PATCH] Add event publisher for client creation from admin account --- .../mw/iam/api/client/service/DefaultClientService.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/api/client/service/DefaultClientService.java b/iam-login-service/src/main/java/it/infn/mw/iam/api/client/service/DefaultClientService.java index 9d2e74aa9..fab41860b 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/api/client/service/DefaultClientService.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/api/client/service/DefaultClientService.java @@ -22,11 +22,13 @@ import org.mitre.oauth2.model.ClientDetailsEntity; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationEventPublisher; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import it.infn.mw.iam.audit.events.client.ClientCreatedEvent; import it.infn.mw.iam.persistence.model.IamAccount; import it.infn.mw.iam.persistence.model.IamAccountClient; import it.infn.mw.iam.persistence.repository.client.ClientSpecs; @@ -42,19 +44,23 @@ public class DefaultClientService implements ClientService { private final IamClientRepository clientRepo; private final IamAccountClientRepository accountClientRepo; + + private ApplicationEventPublisher eventPublisher; @Autowired public DefaultClientService(Clock clock, IamClientRepository clientRepo, - IamAccountClientRepository accountClientRepo) { + IamAccountClientRepository accountClientRepo, ApplicationEventPublisher eventPublisher) { this.clock = clock; this.clientRepo = clientRepo; this.accountClientRepo = accountClientRepo; + this.eventPublisher = eventPublisher; } @Override public ClientDetailsEntity saveNewClient(ClientDetailsEntity client) { client.setCreatedAt(Date.from(clock.instant())); + eventPublisher.publishEvent(new ClientCreatedEvent(this, client)); return clientRepo.save(client); }