1515package org .eclipse .edc .identityhub .tests .dcp .api ;
1616
1717import com .nimbusds .jose .JOSEException ;
18- import com .nimbusds .jose .jwk .Curve ;
1918import com .nimbusds .jose .jwk .ECKey ;
20- import com .nimbusds .jose .jwk .gen .ECKeyGenerator ;
2119import org .eclipse .edc .iam .did .spi .resolution .DidPublicKeyResolver ;
2220import org .eclipse .edc .iam .verifiablecredentials .spi .model .CredentialFormat ;
2321import org .eclipse .edc .identityhub .tests .fixtures .issuerservice .IssuerExtension ;
4240import org .junit .jupiter .api .extension .RegisterExtension ;
4341
4442import java .util .Base64 ;
45- import java .util .Map ;
4643import java .util .UUID ;
4744
4845import static io .restassured .http .ContentType .JSON ;
49- import static jakarta .ws .rs .core .HttpHeaders .AUTHORIZATION ;
5046import static org .eclipse .edc .identityhub .tests .dcp .TestData .ISSUER_RUNTIME_ID ;
5147import static org .eclipse .edc .identityhub .tests .dcp .TestData .ISSUER_RUNTIME_MEM_MODULES ;
5248import static org .eclipse .edc .identityhub .tests .dcp .TestData .ISSUER_RUNTIME_NAME ;
5349import static org .eclipse .edc .identityhub .tests .dcp .TestData .ISSUER_RUNTIME_SQL_MODULES ;
54- import static org .eclipse .edc .identityhub .verifiablecredentials .testfixtures .JwtCreationUtil .generateJwt ;
5550import static org .eclipse .edc .identityhub .verifiablecredentials .testfixtures .VerifiableCredentialTestUtil .generateEcKey ;
5651import static org .hamcrest .Matchers .equalTo ;
5752import static org .mockito .ArgumentMatchers .eq ;
@@ -106,13 +101,11 @@ void issuerMetadata(IssuerExtension issuerExtension, HolderService holderService
106101 credentialDefinitionService .createCredentialDefinition (credentialDefinition );
107102 holderService .createHolder (createHolder (PARTICIPANT_DID , PARTICIPANT_DID , "Participant" ));
108103
109- var token = "Bearer " + generateSiToken ();
110104
111105 when (DID_PUBLIC_KEY_RESOLVER .resolveKey (eq (DID_WEB_PARTICIPANT_KEY_1 ))).thenReturn (Result .success (PARTICIPANT_KEY .toPublicKey ()));
112106
113107 issuerExtension .getIssuerApiEndpoint ().baseRequest ()
114108 .contentType (JSON )
115- .header (AUTHORIZATION , token )
116109 .get (issuanceMetadataUrl ())
117110 .then ()
118111 .log ().ifValidationFails ()
@@ -125,131 +118,6 @@ void issuerMetadata(IssuerExtension issuerExtension, HolderService holderService
125118
126119 }
127120
128- @ Test
129- void issuerMetadata_tokenNotPresent_shouldReturn401 (IssuerExtension issuerExtension ) {
130- issuerExtension .getIssuerApiEndpoint ().baseRequest ()
131- .contentType (JSON )
132- .get (issuanceMetadataUrl ())
133- .then ()
134- .log ().ifValidationFails ()
135- .statusCode (401 );
136-
137- }
138-
139- @ Test
140- void issuerMetadata_noBearerPrefix_shouldReturn401 (IssuerExtension issuerExtension ) {
141- var token = generateSiToken ();
142-
143- issuerExtension .getIssuerApiEndpoint ().baseRequest ()
144- .contentType (JSON )
145- .header (AUTHORIZATION , token )
146- .get (issuanceMetadataUrl ())
147- .then ()
148- .log ().ifValidationFails ()
149- .statusCode (401 );
150-
151- }
152-
153- @ Test
154- void issuerMetadata_participantNotFound_shouldReturn401 (IssuerExtension issuerExtension ) {
155- var token = "Bearer " + generateSiToken ();
156-
157- issuerExtension .getIssuerApiEndpoint ().baseRequest ()
158- .contentType (JSON )
159- .header (AUTHORIZATION , token )
160- .get (issuanceMetadataUrl ())
161- .then ()
162- .log ().ifValidationFails ()
163- .statusCode (401 );
164-
165- }
166-
167- @ Test
168- void issuerMetadata_tokenVerificationFails_shouldReturn401 (IssuerExtension issuerExtension , HolderService holderService ) throws JOSEException {
169-
170- holderService .createHolder (createHolder (PARTICIPANT_DID , PARTICIPANT_DID , "Participant" ));
171-
172- holderService .createHolder (createHolder (PARTICIPANT_DID , PARTICIPANT_DID , "Participant" ));
173-
174- var spoofedKey = new ECKeyGenerator (Curve .P_256 ).keyID (DID_WEB_PARTICIPANT_KEY_1 ).generate ();
175-
176- var token = "Bearer " + generateSiToken ();
177-
178- when (DID_PUBLIC_KEY_RESOLVER .resolveKey (eq (DID_WEB_PARTICIPANT_KEY_1 ))).thenReturn (Result .success (spoofedKey .toPublicKey ()));
179-
180- issuerExtension .getIssuerApiEndpoint ().baseRequest ()
181- .contentType (JSON )
182- .header (AUTHORIZATION , token )
183- .get (issuanceMetadataUrl ())
184- .then ()
185- .log ().ifValidationFails ()
186- .statusCode (401 );
187-
188- }
189-
190- @ Test
191- void issuerMetadata_spoofedKeyId_shouldReturn401 (IssuerExtension issuerExtension , HolderService holderService ) throws JOSEException {
192- holderService .createHolder (createHolder (PARTICIPANT_DID , PARTICIPANT_DID , "Participant" ));
193- var spoofedKeyId = "did:web:spoofed#key1" ;
194- var spoofedKey = new ECKeyGenerator (Curve .P_256 ).keyID (spoofedKeyId ).generate ();
195-
196- var token = generateSiToken (spoofedKey );
197-
198- when (DID_PUBLIC_KEY_RESOLVER .resolveKey (eq (spoofedKeyId ))).thenReturn (Result .success (spoofedKey .toPublicKey ()));
199-
200- issuerExtension .getIssuerApiEndpoint ().baseRequest ()
201- .contentType (JSON )
202- .header (AUTHORIZATION , token )
203- .get (issuanceMetadataUrl ())
204- .then ()
205- .log ().ifValidationFails ()
206- .statusCode (401 );
207-
208-
209- }
210-
211- @ Test
212- void issuerMetadata_wrongTokenAudience_shouldReturn401 (IssuerExtension issuerExtension , HolderService holderService ) throws JOSEException {
213-
214- generateEcKey (DID_WEB_PARTICIPANT_KEY_1 );
215-
216- holderService .createHolder (createHolder (PARTICIPANT_DID , PARTICIPANT_DID , "Participant" ));
217-
218- var token = generateSiToken ("wrong-audience" );
219-
220- when (DID_PUBLIC_KEY_RESOLVER .resolveKey (eq (DID_WEB_PARTICIPANT_KEY_1 ))).thenReturn (Result .success (PARTICIPANT_KEY .toPublicKey ()));
221-
222- issuerExtension .getIssuerApiEndpoint ().baseRequest ()
223- .contentType (JSON )
224- .header (AUTHORIZATION , token )
225- .get (issuanceMetadataUrl ())
226- .then ()
227- .log ().ifValidationFails ()
228- .statusCode (401 );
229-
230- }
231-
232-
233- private String generateSiToken () {
234- return generateSiToken (ISSUER_DID );
235- }
236-
237- private String generateSiToken (String audience ) {
238- return generateSiToken (audience , PARTICIPANT_DID , PARTICIPANT_KEY );
239- }
240-
241- private String generateSiToken (ECKey key ) {
242- return generateSiToken (ISSUER_DID , key );
243- }
244-
245- private String generateSiToken (String audience , ECKey key ) {
246- return generateJwt (audience , PARTICIPANT_DID , PARTICIPANT_DID , Map .of (), key );
247- }
248-
249- private String generateSiToken (String audience , String participantDid , ECKey participantKey ) {
250- return generateJwt (audience , participantDid , participantDid , Map .of (), participantKey );
251- }
252-
253121
254122 private Holder createHolder (String id , String did , String name ) {
255123 return Holder .Builder .newInstance ()
0 commit comments