diff --git a/service/src/main/java/eu/xfsc/train/tcr/server/service/DIDResolver.java b/service/src/main/java/eu/xfsc/train/tcr/server/service/DIDResolver.java index 332111a8ef340e80b4dba6a62496dc951bf74dd2..ae9e2c1be04a4e8f051d5f1e2776ec6c1b9582bf 100644 --- a/service/src/main/java/eu/xfsc/train/tcr/server/service/DIDResolver.java +++ b/service/src/main/java/eu/xfsc/train/tcr/server/service/DIDResolver.java @@ -415,7 +415,7 @@ public class DIDResolver implements HealthIndicator { return JWSAlgorithm.ES256K; } - public VCResolveResult resolveVC(String uri) { + public VCResolveResult resolveVC(String uri, String did) { log.debug("resolveVC.enter; got uri: {}", uri); JsonObject jsonVC = loadJsonDocument(uri); VCResolveResult result = new VCResolveResult(false, null, null); @@ -428,7 +428,6 @@ public class DIDResolver implements HealthIndicator { result.setHash((String) claims.get("hash")); JsonObject vcJson = vc.toJsonObject(); String alg = getAlgFromProof(vcJson); - String did = vc.getLdProof().getVerificationMethod().toString(); result.setVerified(verifyVCSignature(JsonLDObject.fromJson(json), did, alg)); } log.debug("resolveVC.exit; returning: {}", result); diff --git a/service/src/main/java/eu/xfsc/train/tcr/server/service/ResolutionService.java b/service/src/main/java/eu/xfsc/train/tcr/server/service/ResolutionService.java index d11ed2ab3f52011dbfc3190491a13718d4bf52db..a183d49d70f04332fbfe87577ac6e777b1f11360 100644 --- a/service/src/main/java/eu/xfsc/train/tcr/server/service/ResolutionService.java +++ b/service/src/main/java/eu/xfsc/train/tcr/server/service/ResolutionService.java @@ -15,9 +15,6 @@ import org.springframework.stereotype.Service; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; -import eu.europa.esig.trustedlist.jaxb.tsl.TrustStatusListType; -import eu.europa.esig.trustedlist.jaxb.tsl.TSPType; -import eu.europa.esig.trustedlist.jaxb.tsl.TrustServiceProviderListType; import eu.xfsc.train.tcr.api.generated.model.Error; import eu.xfsc.train.tcr.api.generated.model.ResolvedDid; import eu.xfsc.train.tcr.api.generated.model.ResolvedDoc; @@ -30,7 +27,6 @@ import eu.xfsc.train.tcr.api.generated.model.ValidateResponse; import eu.xfsc.train.tcr.server.generated.controller.TrustedContentResolverApiDelegate; import eu.xfsc.train.tcr.server.service.DIDResolver.DCResolveResult; import eu.xfsc.train.tcr.server.service.DIDResolver.DIDResolveResult; -import eu.xfsc.train.tcr.server.service.DIDResolver.TypedEndpoint; import eu.xfsc.train.tcr.server.service.DIDResolver.VCResolveResult; import eu.xfsc.train.tcr.server.service.TLResolver.TLResolveResult; import eu.xfsc.train.tspa.model.trustlist.TrustServiceStatusList; @@ -88,7 +84,7 @@ public class ResolutionService implements TrustedContentResolverApiDelegate { ResolvedDoc reDoc = new ResolvedDoc().document(didRes.getDocument()).didVerified(didVerified); didRes.getEndpoints().forEach(endpoint -> { try { - VCResolveResult vcRes = reDID.resolveVC(endpoint.getUrl()); + VCResolveResult vcRes = reDID.resolveVC(endpoint.getUrl(), did); ResolvedTrustList rtl = new ResolvedTrustList(endpoint.getUrl(), vcRes.getTrustListUri(), null, false); TLResolveResult tlRes = reTL.resolveTLHash(vcRes.getTrustListUri(), true, vcRes.getHash()); // TL verified by hash @@ -137,7 +133,7 @@ public class ResolutionService implements TrustedContentResolverApiDelegate { } validateRequest.getEndpoints().forEach(endpoint -> { try { - VCResolveResult vcRes = reDID.resolveVC(endpoint); + VCResolveResult vcRes = reDID.resolveVC(endpoint, validateRequest.getDid()); ResolvedTrustList rtl = new ResolvedTrustList(endpoint, vcRes.getTrustListUri(), null, false); TLResolveResult tlRes = reTL.resolveTLHash(vcRes.getTrustListUri(), true, vcRes.getHash()); if (rtl != null) { @@ -160,13 +156,6 @@ public class ResolutionService implements TrustedContentResolverApiDelegate { return trustList.getTrustServiceProviderList().getTrustServiceProvider().stream() .filter(tsp -> tsp.getTSPServices().getTspService().stream().anyMatch(tsps -> tsps.getServiceTypeIdentifier().equals(issuer))).findFirst(); } - - private Optional<TSPType> findIssuerProvider(TrustStatusListType trustList, String issuer) { - TrustServiceProviderListType list = trustList.getTrustServiceProviderList(); - if (list == null) return Optional.empty(); - return list.getTrustServiceProvider().stream() - .filter(tsp -> tsp.getTSPServices().getTSPService().stream().anyMatch(tsps -> tsps.getServiceInformation().getServiceTypeIdentifier().equals(issuer))).findFirst(); - } private Map<String, Object> convertToMap(Object value) { try { diff --git a/service/src/test/java/eu/xfsc/train/tcr/server/service/DIDResolverTest.java b/service/src/test/java/eu/xfsc/train/tcr/server/service/DIDResolverTest.java index f50a49e87b63f7d6df2e17cd951e00e50ab919f6..92ba0f65c5ea0cba7bddb36e726a6530b0bd8446 100644 --- a/service/src/test/java/eu/xfsc/train/tcr/server/service/DIDResolverTest.java +++ b/service/src/test/java/eu/xfsc/train/tcr/server/service/DIDResolverTest.java @@ -188,7 +188,7 @@ public class DIDResolverTest { ResolveRepresentationResult rrr = ResolveRepresentationResult.build(null, didDocEssif.getBytes(), null); when(uniResolver.resolveRepresentation(eq(fhDidEssif), any())).thenReturn(rrr); - VCResolveResult vcRes = didResolver.resolveVC("https://essif.iao.fraunhofer.de/files/trustlist/federation1.test.train.trust-scheme.de.json"); + VCResolveResult vcRes = didResolver.resolveVC("https://essif.iao.fraunhofer.de/files/trustlist/federation1.test.train.trust-scheme.de.json", fhDidEssif); assertEquals("https://tspa.trust-scheme.de/tspa_train_domain/api/v1/scheme/federation1.test.train.trust-scheme.de", vcRes.getTrustListUri()); assertTrue(vcRes.isVerified()); } @@ -198,7 +198,7 @@ public class DIDResolverTest { ResolveRepresentationResult rrr = ResolveRepresentationResult.build(null, didDocEssif.getBytes(), null); when(uniResolver.resolveRepresentation(eq(fhDidEssif), any())).thenReturn(rrr); - Exception ex = assertThrowsExactly(DidException.class, () -> didResolver.resolveVC("https://ec.europa.eu/tools/lotl/eu-lotl.xml")); + Exception ex = assertThrowsExactly(DidException.class, () -> didResolver.resolveVC("https://ec.europa.eu/tools/lotl/eu-lotl.xml", fhDidEssif)); assertTrue(ex.getMessage().contains("LOADING_DOCUMENT_FAILED")); }