Skip to content

Commit

Permalink
fix: create PresentationVerifier (no inject) (eclipse-edc#3611)
Browse files Browse the repository at this point in the history
* fix: create PresentationVerifier (no inject)

* fixed test
  • Loading branch information
paullatzelsperger authored Nov 15, 2023
1 parent 9d472cf commit 5b13175
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ public class IdentityAndTrustExtension implements ServiceExtension {
@Inject
private SecureTokenService secureTokenService;

@Inject
private PresentationVerifier presentationVerifier;

@Inject
Expand Down Expand Up @@ -79,7 +78,7 @@ public class IdentityAndTrustExtension implements ServiceExtension {

@Provider
public IdentityService createIdentityService(ServiceExtensionContext context) {
return new IdentityAndTrustService(secureTokenService, getIssuerDid(context), context.getParticipantId(), presentationVerifier,
return new IdentityAndTrustService(secureTokenService, getIssuerDid(context), context.getParticipantId(), getPresentationVerifier(context),
credentialServiceClient, getJwtValidator(), getJwtVerifier(), registry, clock);
}

Expand All @@ -92,17 +91,20 @@ public JwtValidator getJwtValidator() {
}

@Provider
public PresentationVerifier createPresentationVerifier(ServiceExtensionContext context) {
var mapper = typeManager.getMapper(JSON_LD);

var jwtVerifier = new JwtPresentationVerifier(getJwtVerifier(), mapper);
var ldpVerifier = LdpVerifier.Builder.newInstance()
.signatureSuites(signatureSuiteRegistry)
.jsonLd(jsonLd)
.objectMapper(mapper)
.build();

return new MultiFormatPresentationVerifier(getOwnDid(context), jwtVerifier, ldpVerifier);
public PresentationVerifier getPresentationVerifier(ServiceExtensionContext context) {
if (presentationVerifier == null) {
var mapper = typeManager.getMapper(JSON_LD);

var jwtVerifier = new JwtPresentationVerifier(getJwtVerifier(), mapper);
var ldpVerifier = LdpVerifier.Builder.newInstance()
.signatureSuites(signatureSuiteRegistry)
.jsonLd(jsonLd)
.objectMapper(mapper)
.build();

presentationVerifier = new MultiFormatPresentationVerifier(getOwnDid(context), jwtVerifier, ldpVerifier);
}
return presentationVerifier;
}

@Provider
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,13 @@
import org.eclipse.edc.junit.extensions.DependencyInjectionExtension;
import org.eclipse.edc.spi.system.ServiceExtensionContext;
import org.eclipse.edc.spi.system.configuration.Config;
import org.eclipse.edc.spi.types.TypeManager;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;

import static org.assertj.core.api.Assertions.assertThat;
import static org.eclipse.edc.spi.CoreConstants.JSON_LD;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
Expand All @@ -33,17 +35,19 @@
@ExtendWith(DependencyInjectionExtension.class)
class IdentityAndTrustExtensionTest {

private IdentityAndTrustExtension extension;
private ServiceExtensionContext spiedContext;

@BeforeEach
void setUp(ServiceExtensionContext context) {
spiedContext = spy(context);
spiedContext.registerService(SecureTokenService.class, mock());
TypeManager mockedTm = mock();
when(mockedTm.getMapper(eq(JSON_LD))).thenReturn(mock());
spiedContext.registerService(TypeManager.class, mockedTm);
}

@Test
void verifyCorrectService(IdentityAndTrustExtension extension, ServiceExtensionContext context) {
void verifyCorrectService(IdentityAndTrustExtension extension) {
var configMock = mock(Config.class);
when(configMock.getString(eq(IdentityAndTrustExtension.ISSUER_DID_PROPERTY))).thenReturn("did:web:test");
when(spiedContext.getConfig()).thenReturn(configMock);
Expand Down

0 comments on commit 5b13175

Please sign in to comment.