Skip to content
Snippets Groups Projects

add issuer registry in file

Merged Polina Arzhevikina requested to merge mvd_issuer into mvd
3 files
+ 35
3
Compare changes
  • Side-by-side
  • Inline
Files
3
@@ -14,6 +14,7 @@
package org.eclipse.edc.fsn.extensions.core;
import com.fasterxml.jackson.core.type.TypeReference;
import org.eclipse.edc.iam.identitytrust.spi.scope.ScopeExtractorRegistry;
import org.eclipse.edc.iam.identitytrust.spi.verification.SignatureSuiteRegistry;
import org.eclipse.edc.iam.verifiablecredentials.spi.VcConstants;
@@ -25,12 +26,15 @@ import org.eclipse.edc.policy.context.request.spi.RequestTransferProcessPolicyCo
import org.eclipse.edc.policy.engine.spi.PolicyEngine;
import org.eclipse.edc.runtime.metamodel.annotation.Inject;
import org.eclipse.edc.security.signature.jws2020.Jws2020SignatureSuite;
import org.eclipse.edc.spi.EdcException;
import org.eclipse.edc.spi.system.ServiceExtension;
import org.eclipse.edc.spi.system.ServiceExtensionContext;
import org.eclipse.edc.spi.types.TypeManager;
import org.eclipse.edc.transform.spi.TypeTransformerRegistry;
import org.eclipse.edc.transform.transformer.edc.to.JsonValueToGenericTypeTransformer;
import java.io.File;
import java.io.IOException;
import java.util.Map;
import java.util.Set;
@@ -38,6 +42,10 @@ import static org.eclipse.edc.iam.verifiablecredentials.spi.validation.TrustedIs
import static org.eclipse.edc.spi.constants.CoreConstants.JSON_LD;
public class DcpPatchExtension implements ServiceExtension {
public static final String ISSUER_LIST_FILE_PATH = "edc.issuers.list.file";
private static final TypeReference<Map<String, String>> MAP_TYPE = new TypeReference<>() {
};
@Inject
private TypeManager typeManager;
@@ -54,6 +62,9 @@ public class DcpPatchExtension implements ServiceExtension {
private ScopeExtractorRegistry scopeExtractorRegistry;
@Inject
private TypeTransformerRegistry typeTransformerRegistry;
// @Inject
// private File issuerListFile;
@Override
public void initialize(ServiceExtensionContext context) {
@@ -64,9 +75,22 @@ public class DcpPatchExtension implements ServiceExtension {
signatureSuiteRegistry.register(VcConstants.JWS_2020_SIGNATURE_SUITE, suite);
// register dataspace issuer
// trustedIssuerRegistry.register(new Issuer("did:web:dataspace-issuer", Map.of()), WILDCARD);
trustedIssuerRegistry.register(new Issuer("did:web:issuer%3A80", Map.of()), WILDCARD);
// get issuers from file
var issuersPath = context.getConfig().getString(ISSUER_LIST_FILE_PATH);
var issuerListFile = new File(issuersPath).getAbsoluteFile();
if (!issuerListFile.exists()) {
monitor.warning("Path '%s' does not exist. It must be a resolvable path with read access. Will not add any Issuers to the trusted registry.".formatted(issuersPath));
} else {
var mapper = typeManager.getMapper();
try {
var entries = mapper.readValue(issuerListFile, MAP_TYPE);
entries.entrySet().stream()
.forEach(e ->
trustedIssuerRegistry.register(new Issuer(e.getValue(), Map.of()), WILDCARD));
} catch (IOException e) {
throw new EdcException(e);
}
}
// register a default scope provider
var contextMappingFunction = new DefaultScopeMappingFunction(monitor, Set.of("org.eclipse.edc.vc.type:MembershipCredential:read"));