From f3c0621d6d19bb0ecc4229cf43f15bba1ce577cf Mon Sep 17 00:00:00 2001 From: Yurii Shynbuiev Date: Wed, 22 Jan 2025 20:53:55 +0700 Subject: [PATCH 1/2] feat: add LOG_LEVEL environment variable to the cloud-agent logback.xml and e2e tests docker file Signed-off-by: Yurii Shynbuiev --- cloud-agent/service/server/src/main/resources/logback.xml | 4 +++- .../integration-tests/src/test/resources/containers/agent.yml | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/cloud-agent/service/server/src/main/resources/logback.xml b/cloud-agent/service/server/src/main/resources/logback.xml index a91551a3d1..964621e84e 100644 --- a/cloud-agent/service/server/src/main/resources/logback.xml +++ b/cloud-agent/service/server/src/main/resources/logback.xml @@ -5,6 +5,8 @@ + + %d{yyyy-MM-dd_HH:mm:ss.SSS} %highlight(%-5level) %cyan(%logger{5}@L%line:[%-4.30thread]) {%mdc} - %msg%n%xException @@ -16,7 +18,7 @@ - + \ No newline at end of file diff --git a/tests/integration-tests/src/test/resources/containers/agent.yml b/tests/integration-tests/src/test/resources/containers/agent.yml index a9e00b7fd7..9b6d8f668d 100644 --- a/tests/integration-tests/src/test/resources/containers/agent.yml +++ b/tests/integration-tests/src/test/resources/containers/agent.yml @@ -58,6 +58,7 @@ services: # Kafka Messaging Service DEFAULT_KAFKA_ENABLED: true ENABLE_ANONCRED: true # Default is false + LOG_LEVEL: DEBUG depends_on: postgres: condition: service_healthy From 24146557afe50ef9ab75fcf7763f1e4161e920c3 Mon Sep 17 00:00:00 2001 From: Yurii Shynbuiev Date: Thu, 23 Jan 2025 22:39:21 +0700 Subject: [PATCH 2/2] fix: JsonDecoder of VPJWT payload and added mode debug logging to debug the issues Signed-off-by: Yurii Shynbuiev --- .../hyperledger/identus/mercury/MessagingService.scala | 1 + .../pollux/core/service/CredentialServiceImpl.scala | 4 +++- .../pollux/vc/jwt/VerifiablePresentationPayload.scala | 3 ++- .../test/kotlin/steps/credentials/CredentialSteps.kt | 10 +++++++++- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/mercury/agent-didcommx/src/main/scala/org/hyperledger/identus/mercury/MessagingService.scala b/mercury/agent-didcommx/src/main/scala/org/hyperledger/identus/mercury/MessagingService.scala index 2e4e93517e..9bc33be2b3 100644 --- a/mercury/agent-didcommx/src/main/scala/org/hyperledger/identus/mercury/MessagingService.scala +++ b/mercury/agent-didcommx/src/main/scala/org/hyperledger/identus/mercury/MessagingService.scala @@ -131,6 +131,7 @@ object MessagingService { else didCommService.packEncrypted(msg = finalMessage, to = to) _ <- ZIO.log(s"Sending a Message to '$serviceEndpoint'") + _ <- ZIO.debug(s"Plain message: $msg") resp <- org.hyperledger.identus.mercury.HttpClient .postDIDComm(url = serviceEndpoint, data = encryptedMessage.string) .catchAll { case ex => ZIO.fail(SendMessageError(ex, Some(encryptedMessage.string))) } diff --git a/pollux/core/src/main/scala/org/hyperledger/identus/pollux/core/service/CredentialServiceImpl.scala b/pollux/core/src/main/scala/org/hyperledger/identus/pollux/core/service/CredentialServiceImpl.scala index 56819c1e26..e1d7f0f4c8 100644 --- a/pollux/core/src/main/scala/org/hyperledger/identus/pollux/core/service/CredentialServiceImpl.scala +++ b/pollux/core/src/main/scala/org/hyperledger/identus/pollux/core/service/CredentialServiceImpl.scala @@ -1492,7 +1492,9 @@ class CredentialServiceImpl( JwtPresentation.validatePresentation(jwt, options.domain, options.challenge) match case ZValidation.Success(log, value) => ZIO.unit case ZValidation.Failure(log, error) => - ZIO.fail(CredentialRequestValidationFailed("domain/challenge proof validation failed")) + ZIO.fail( + CredentialRequestValidationFailed(s"JWTPresentation validation failed: ${error.toList.mkString(";")}") + ) clock = java.time.Clock.system(ZoneId.systemDefault) verificationResult <- JwtPresentation diff --git a/pollux/vc-jwt/src/main/scala/org/hyperledger/identus/pollux/vc/jwt/VerifiablePresentationPayload.scala b/pollux/vc-jwt/src/main/scala/org/hyperledger/identus/pollux/vc/jwt/VerifiablePresentationPayload.scala index 84986c2880..73305a8cea 100644 --- a/pollux/vc-jwt/src/main/scala/org/hyperledger/identus/pollux/vc/jwt/VerifiablePresentationPayload.scala +++ b/pollux/vc-jwt/src/main/scala/org/hyperledger/identus/pollux/vc/jwt/VerifiablePresentationPayload.scala @@ -192,6 +192,7 @@ object JwtVp { .map(IndexedSeq(_)) .orElse(ctx.as[IndexedSeq[VerifiableCredentialPayload]]) ) + .orElse(Right(IndexedSeq.empty[VerifiableCredentialPayload])) } yield Json_JwtVp(context, typ, vcp) } @@ -484,7 +485,7 @@ object JwtPresentation { domain: Option[String] ): Validation[String, Unit] = { if (!domain.forall(domain => decodedJwtPresentation.aud.contains(domain))) { - Validation.fail(s"domain/Audience dont match doamin=$domain, exp=${decodedJwtPresentation.aud}") + Validation.fail(s"domain/Audience dont match domain=$domain, exp=${decodedJwtPresentation.aud}") } else Validation.unit } diff --git a/tests/integration-tests/src/test/kotlin/steps/credentials/CredentialSteps.kt b/tests/integration-tests/src/test/kotlin/steps/credentials/CredentialSteps.kt index 1ad3fa1c07..5e8e99e3d5 100644 --- a/tests/integration-tests/src/test/kotlin/steps/credentials/CredentialSteps.kt +++ b/tests/integration-tests/src/test/kotlin/steps/credentials/CredentialSteps.kt @@ -131,7 +131,15 @@ class CredentialSteps { equalTo(CREDENTIAL_RECEIVED), ), ) - holder.remember("issuedCredential", ListenToEvents.with(holder).credentialEvents.last().data) + + val issueCredentialRecord = ListenToEvents.with(holder).credentialEvents.last().data + + issueCredentialRecord.credential?.let { + println("Issued Credentials:") + println(it) + } + + holder.remember("issuedCredential", issueCredentialRecord) } @Then("{actor} should see that credential issuance has failed")