From 1394b4757112bde2b2b1f3e98505323c3af8f860 Mon Sep 17 00:00:00 2001 From: RIHTARSIC Joze <joze.rihtarsic@ext.ec.europa.eu> Date: Tue, 2 May 2023 15:59:06 +0200 Subject: [PATCH] Fix error message for expired certificates --- .../domain-panel/domain-panel.component.ts | 2 +- .../smp/services/ui/UIUserService.java | 5 ++++- .../smp/ui/external/UserController.java | 20 +++++++++++++++---- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/smp-angular/src/app/system-settings/admin-domain/domain-panel/domain-panel.component.ts b/smp-angular/src/app/system-settings/admin-domain/domain-panel/domain-panel.component.ts index 6d6735d2e..65230be8f 100644 --- a/smp-angular/src/app/system-settings/admin-domain/domain-panel/domain-panel.component.ts +++ b/smp-angular/src/app/system-settings/admin-domain/domain-panel/domain-panel.component.ts @@ -1,4 +1,4 @@ -import {Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild,} from '@angular/core'; +import {Component, ElementRef, EventEmitter, Input, Output, ViewChild,} from '@angular/core'; import {DomainRo} from "../../../common/model/domain-ro.model"; import {AbstractControl, FormBuilder, FormControl, FormGroup, Validators} from "@angular/forms"; import {AdminDomainService} from "../admin-domain.service"; diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIUserService.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIUserService.java index 680b1d6f2..3a5e71bc0 100644 --- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIUserService.java +++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIUserService.java @@ -181,6 +181,7 @@ public class UIUserService extends UIServiceBase<DBUser, UserRO> { throw new SMPRuntimeException(ErrorCode.INVALID_REQUEST, "CertificateCredentials", "Certificate is not given for certificate credential!"); } + DBCredential dbCredential = conversionService.convert(credential, DBCredential.class); dbCredential.setCredentialType(CredentialType.CERTIFICATE); dbCredential.setCredentialTarget(CredentialTargetType.REST_API); @@ -197,8 +198,9 @@ public class UIUserService extends UIServiceBase<DBUser, UserRO> { dbCredential.setCertificate(dbCertificate); credentialDao.persistFlushDetach(dbCredential); + CredentialRO result = conversionService.convert(dbCredential, CredentialRO.class); - CertificateRO resultCertificate = conversionService.convert(dbCredential.getCertificate(), CertificateRO.class); + CertificateRO resultCertificate = truststoreService.getCertificateData(dbCertificate.getPemEncoding(), true, false); result.setCertificate(resultCertificate); result.setStatus(EntityROStatus.NEW.getStatusNumber()); return result; @@ -453,6 +455,7 @@ public class UIUserService extends UIServiceBase<DBUser, UserRO> { credentialDao.remove(credential); CredentialRO credentialRO = conversionService.convert(credential, CredentialRO.class); credentialRO.setStatus(EntityROStatus.REMOVE.getStatusNumber()); + return credentialRO; } diff --git a/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/ui/external/UserController.java b/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/ui/external/UserController.java index 6880802b4..99f0440da 100644 --- a/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/ui/external/UserController.java +++ b/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/ui/external/UserController.java @@ -146,8 +146,11 @@ public class UserController { Long accessTokenId = decryptEntityId(encAccessTokenId); // delete user credential - return uiUserService.deleteUserCredentials(userId, + CredentialRO result = uiUserService.deleteUserCredentials(userId, accessTokenId, CredentialType.ACCESS_TOKEN, CredentialTargetType.REST_API); + // set the same encrypted id so that UI can locate and update it + result.setCredentialId(encAccessTokenId); + return result; } @PreAuthorize("@smpAuthorizationService.isCurrentlyLoggedIn(#encUserId)") @@ -160,11 +163,14 @@ public class UserController { Long accessTokenId = decryptEntityId(encAccessTokenId); // delete user credential - return uiUserService.updateUserCredentials(userId, + CredentialRO result = uiUserService.updateUserCredentials(userId, accessTokenId, CredentialType.ACCESS_TOKEN, CredentialTargetType.REST_API, credentialRO); + // set the same encrypted credential id so that UI can remove it from the list + result.setCredentialId(encAccessTokenId); + return result; } @PreAuthorize("@smpAuthorizationService.isCurrentlyLoggedIn(#encUserId)") @@ -195,8 +201,11 @@ public class UserController { Long userId = decryptEntityId(encUserId); Long credentialId = decryptEntityId(encCredentialId); // delete user credential - return uiUserService.deleteUserCredentials(userId, + CredentialRO result = uiUserService.deleteUserCredentials(userId, credentialId, CredentialType.CERTIFICATE, CredentialTargetType.REST_API); + // set the same encrypted credential id so that UI can remove it from the list + result.setCredentialId(encCredentialId); + return result; } @PreAuthorize("@smpAuthorizationService.isCurrentlyLoggedIn(#encUserId)") @@ -208,11 +217,14 @@ public class UserController { Long userId = decryptEntityId(encUserId); Long credentialId = decryptEntityId(encCredentialId); // delete user credential - return uiUserService.updateUserCredentials(userId, + CredentialRO result = uiUserService.updateUserCredentials(userId, credentialId, CredentialType.CERTIFICATE, CredentialTargetType.REST_API, credentialRO); + // set the same encrypted credential id so that UI can update it + result.setCredentialId(encCredentialId); + return result; } @PreAuthorize("@smpAuthorizationService.isCurrentlyLoggedIn(#encUserId)") -- GitLab