diff --git a/pom.xml b/pom.xml index 6bbd2da3..d2b477a0 100644 --- a/pom.xml +++ b/pom.xml @@ -2,6 +2,8 @@ + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 @@ -10,10 +12,12 @@ 3.2.3 + io.inji.verify io.inji.verify verify-service-parent 0.1.0-SNAPSHOT Parent project of MOSIP Inji verify backend service + Parent project of MOSIP Inji verify backend service https://github.com/mosip/inji-verify pom @@ -145,6 +149,8 @@ true ${project.build.outputDirectory}/git.properties + ${project.build.outputDirectory}/git.properties + ^git.build.(time|version)$ ^git.commit.id.(abbrev|full)$ diff --git a/verify-service/pom.xml b/verify-service/pom.xml index 0e0cf70d..c9c3476b 100644 --- a/verify-service/pom.xml +++ b/verify-service/pom.xml @@ -2,9 +2,12 @@ + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 + io.inji.verify io.inji.verify verify-service-parent 0.1.0-SNAPSHOT @@ -14,6 +17,7 @@ 0.1.0-SNAPSHOT verify-service Inji verify backend server implementing the OpenId4VP flow and online verification of VC + Inji verify backend server implementing the OpenId4VP flow and online verification of VC jar diff --git a/verify-service/src/main/java/io/inji/verify/dto/authorizationrequest/AuthorizationRequestResponseDto.java b/verify-service/src/main/java/io/inji/verify/dto/authorizationrequest/AuthorizationRequestResponseDto.java index b35527ae..bc5bd50e 100644 --- a/verify-service/src/main/java/io/inji/verify/dto/authorizationrequest/AuthorizationRequestResponseDto.java +++ b/verify-service/src/main/java/io/inji/verify/dto/authorizationrequest/AuthorizationRequestResponseDto.java @@ -1,26 +1,13 @@ package io.inji.verify.dto.authorizationrequest; -import com.fasterxml.jackson.annotation.JsonInclude; -import io.inji.verify.dto.presentation.VPDefinitionResponseDto; -import io.inji.verify.models.PresentationDefinition; -import io.inji.verify.shared.Constants; import lombok.AllArgsConstructor; import lombok.Getter; -import org.springframework.cache.annotation.Cacheable; -import java.time.Instant; - -@Getter @AllArgsConstructor -@JsonInclude(JsonInclude.Include.NON_NULL) -@Cacheable -public class AuthorizationRequestResponseDto { - - private final String responseType = Constants.RESPONSE_TYPE; - private final String responseUri = Constants.RESPONSE_SUBMISSION_URI_ROOT+Constants.RESPONSE_SUBMISSION_URI; - private final long issuedAt = Instant.now().toEpochMilli(); - private final String clientId; - private final String presentationDefinitionUri; - private final VPDefinitionResponseDto presentationDefinition; - private final String nonce; -} +@Getter +public class VPRequestResponseDto { + String transactionId; + String requestId; + AuthorizationRequestResponseDto authorizationDetails; + long expiresAt; +} \ No newline at end of file diff --git a/verify-service/src/main/java/io/inji/verify/dto/authorizationrequest/VPRequestResponseDto.java b/verify-service/src/main/java/io/inji/verify/dto/authorizationrequest/VPRequestResponseDto.java index bd9f892c..bc5bd50e 100644 --- a/verify-service/src/main/java/io/inji/verify/dto/authorizationrequest/VPRequestResponseDto.java +++ b/verify-service/src/main/java/io/inji/verify/dto/authorizationrequest/VPRequestResponseDto.java @@ -10,4 +10,4 @@ public class VPRequestResponseDto { String requestId; AuthorizationRequestResponseDto authorizationDetails; long expiresAt; -} +} \ No newline at end of file diff --git a/verify-service/src/main/java/io/inji/verify/dto/authorizationrequest/VPResultDto.java b/verify-service/src/main/java/io/inji/verify/dto/authorizationrequest/VPResultDto.java index a221aca1..8fb6b9d5 100644 --- a/verify-service/src/main/java/io/inji/verify/dto/authorizationrequest/VPResultDto.java +++ b/verify-service/src/main/java/io/inji/verify/dto/authorizationrequest/VPResultDto.java @@ -1,9 +1,11 @@ package io.inji.verify.dto.authorizationrequest; +import org.json.JSONObject; + import com.fasterxml.jackson.annotation.JsonInclude; + import lombok.AllArgsConstructor; import lombok.Getter; -import org.json.JSONObject; @AllArgsConstructor @Getter @@ -12,4 +14,4 @@ public class VPResultDto { String transactionId; boolean verified; JSONObject claims; -} +} \ No newline at end of file diff --git a/verify-service/src/main/java/io/inji/verify/dto/presentation/ConstraintsDTO.java b/verify-service/src/main/java/io/inji/verify/dto/presentation/ConstraintsDTO.java index bee66780..1131e329 100644 --- a/verify-service/src/main/java/io/inji/verify/dto/presentation/ConstraintsDTO.java +++ b/verify-service/src/main/java/io/inji/verify/dto/presentation/ConstraintsDTO.java @@ -1,7 +1,10 @@ package io.inji.verify.dto.presentation; import com.fasterxml.jackson.annotation.JsonInclude; -import lombok.*; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; @AllArgsConstructor diff --git a/verify-service/src/main/java/io/inji/verify/dto/presentation/InputDescriptorDto.java b/verify-service/src/main/java/io/inji/verify/dto/presentation/InputDescriptorDto.java index 39f3c279..8266adbf 100644 --- a/verify-service/src/main/java/io/inji/verify/dto/presentation/InputDescriptorDto.java +++ b/verify-service/src/main/java/io/inji/verify/dto/presentation/InputDescriptorDto.java @@ -1,10 +1,12 @@ package io.inji.verify.dto.presentation; +import java.util.List; +import java.util.Map; + import com.fasterxml.jackson.annotation.JsonInclude; + import lombok.AllArgsConstructor; import lombok.Getter; -import java.util.List; -import java.util.Map; @AllArgsConstructor @Getter diff --git a/verify-service/src/main/java/io/inji/verify/dto/presentation/SubmissionRequirementDto.java b/verify-service/src/main/java/io/inji/verify/dto/presentation/SubmissionRequirementDto.java index 117bd5eb..8174f2ae 100644 --- a/verify-service/src/main/java/io/inji/verify/dto/presentation/SubmissionRequirementDto.java +++ b/verify-service/src/main/java/io/inji/verify/dto/presentation/SubmissionRequirementDto.java @@ -1,8 +1,9 @@ package io.inji.verify.dto.presentation; import com.fasterxml.jackson.annotation.JsonInclude; -import lombok.Getter; + import lombok.AllArgsConstructor; +import lombok.Getter; @AllArgsConstructor @Getter diff --git a/verify-service/src/main/java/io/inji/verify/dto/submission/DescriptorMapDto.java b/verify-service/src/main/java/io/inji/verify/dto/submission/DescriptorMapDto.java index 0b28e543..9d6d8992 100644 --- a/verify-service/src/main/java/io/inji/verify/dto/submission/DescriptorMapDto.java +++ b/verify-service/src/main/java/io/inji/verify/dto/submission/DescriptorMapDto.java @@ -3,6 +3,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.nimbusds.jose.shaded.gson.annotations.SerializedName; + import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/verify-service/src/main/java/io/inji/verify/models/PresentationDefinition.java b/verify-service/src/main/java/io/inji/verify/models/PresentationDefinition.java index 9a920507..3086c0b1 100644 --- a/verify-service/src/main/java/io/inji/verify/models/PresentationDefinition.java +++ b/verify-service/src/main/java/io/inji/verify/models/PresentationDefinition.java @@ -23,6 +23,7 @@ @AllArgsConstructor @NoArgsConstructor(force = true) public class PresentationDefinition { + @Id private final String id; @@ -34,9 +35,8 @@ public class PresentationDefinition { @JdbcTypeCode(SqlTypes.JSON) private final List submissionRequirements; - @JsonIgnore - public String getURL(){ - return Constants.VP_DEFINITION_URI +this.id; + public String getURL() { + return Constants.VP_DEFINITION_URI + this.id; } } diff --git a/verify-service/src/main/java/io/inji/verify/repository/AuthorizationRequestCreateResponseRepository.java b/verify-service/src/main/java/io/inji/verify/repository/AuthorizationRequestCreateResponseRepository.java index 3c0896db..4b76e955 100644 --- a/verify-service/src/main/java/io/inji/verify/repository/AuthorizationRequestCreateResponseRepository.java +++ b/verify-service/src/main/java/io/inji/verify/repository/AuthorizationRequestCreateResponseRepository.java @@ -1,10 +1,11 @@ package io.inji.verify.repository; -import io.inji.verify.models.AuthorizationRequestCreateResponse; +import java.util.List; + import org.jetbrains.annotations.NotNull; import org.springframework.data.jpa.repository.JpaRepository; -import java.util.List; +import io.inji.verify.models.AuthorizationRequestCreateResponse; public interface AuthorizationRequestCreateResponseRepository extends JpaRepository { List findAllByTransactionIdOrderByExpiresAtDesc(@NotNull String transactionId); diff --git a/verify-service/src/main/java/io/inji/verify/services/VCVerificationServiceImpl.java b/verify-service/src/main/java/io/inji/verify/services/VCVerificationServiceImpl.java index dae01c60..556ecc35 100644 --- a/verify-service/src/main/java/io/inji/verify/services/VCVerificationServiceImpl.java +++ b/verify-service/src/main/java/io/inji/verify/services/VCVerificationServiceImpl.java @@ -14,6 +14,7 @@ @Service @Slf4j public class VCVerificationServiceImpl implements VCVerificationService { + @Autowired CredentialsVerifier credentialsVerifier; @@ -22,8 +23,9 @@ public VCVerificationStatusDto verify(String vc) { VerificationResult verificationResult = credentialsVerifier.verify(vc, CredentialFormat.LDP_VC); log.info("VC verification result:: " + verificationResult); if (verificationResult.getVerificationStatus()) { - if (verificationResult.getVerificationErrorCode().equals(CredentialValidatorConstants.ERROR_CODE_VC_EXPIRED)) + if (verificationResult.getVerificationErrorCode().equals(CredentialValidatorConstants.ERROR_CODE_VC_EXPIRED)) { return new VCVerificationStatusDto(VerificationStatus.EXPIRED); + } return new VCVerificationStatusDto(VerificationStatus.SUCCESS); } return new VCVerificationStatusDto(VerificationStatus.INVALID); diff --git a/verify-service/src/main/java/io/inji/verify/services/VPDefinitionServiceImpl.java b/verify-service/src/main/java/io/inji/verify/services/VPDefinitionServiceImpl.java index 6af8f889..41c945dd 100644 --- a/verify-service/src/main/java/io/inji/verify/services/VPDefinitionServiceImpl.java +++ b/verify-service/src/main/java/io/inji/verify/services/VPDefinitionServiceImpl.java @@ -1,12 +1,13 @@ package io.inji.verify.services; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + import io.inji.verify.dto.presentation.VPDefinitionResponseDto; import io.inji.verify.models.PresentationDefinition; -import io.inji.verify.spi.VPDefinitionService; import io.inji.verify.repository.PresentationDefinitionRepository; +import io.inji.verify.spi.VPDefinitionService; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; @Service @Slf4j diff --git a/verify-service/src/test/java/io/inji/verify/services/VerifiablePresentationRequestServiceImplTest.java b/verify-service/src/test/java/io/inji/verify/services/VerifiablePresentationRequestServiceImplTest.java index c84aeeb3..277e7d14 100644 --- a/verify-service/src/test/java/io/inji/verify/services/VerifiablePresentationRequestServiceImplTest.java +++ b/verify-service/src/test/java/io/inji/verify/services/VerifiablePresentationRequestServiceImplTest.java @@ -46,10 +46,12 @@ public void shouldCreateNewAuthorizationRequest() { when(mockPresentationDefinitionRepository.save(any(PresentationDefinition.class))).thenReturn(null); when(mockAuthorizationRequestCreateResponseRepository.save(any(AuthorizationRequestCreateResponse.class))).thenReturn(null); + VPRequestCreateDto vpRequestCreateDto = new VPRequestCreateDto(); + vpRequestCreateDto.setTransactionId("test_transaction_id"); + vpRequestCreateDto.setClientId("test_client_id"); List mockInputDescriptorDtos = mock(); List mockSubmissionRequirementDtos = mock(); - VPDefinitionResponseDto mockPresentationDefinitionDto = new VPDefinitionResponseDto("test_id", mockInputDescriptorDtos, mockSubmissionRequirementDtos); - VPRequestCreateDto vpRequestCreateDto = new VPRequestCreateDto("test_client_id","test_transaction_id",null,"",mockPresentationDefinitionDto); + vpRequestCreateDto.setPresentationDefinition(new VPDefinitionResponseDto("test_id", mockInputDescriptorDtos, mockSubmissionRequirementDtos)); VPRequestResponseDto responseDto = service.createAuthorizationRequest(vpRequestCreateDto); @@ -62,11 +64,11 @@ public void shouldCreateNewAuthorizationRequest() { } @Test public void shouldCreateAuthorizationRequestWithMissingTransactionId() { - + VPRequestCreateDto vpRequestCreateDto = new VPRequestCreateDto(); + vpRequestCreateDto.setClientId("test_client_id"); List mockInputDescriptorDtos = mock(); List mockSubmissionRequirementDtos = mock(); - VPDefinitionResponseDto mockPresentationDefinitionDto = new VPDefinitionResponseDto("test_id", mockInputDescriptorDtos, mockSubmissionRequirementDtos); - VPRequestCreateDto vpRequestCreateDto = new VPRequestCreateDto("test_client_id",null,null,"",mockPresentationDefinitionDto); + vpRequestCreateDto.setPresentationDefinition(new VPDefinitionResponseDto("test_id", mockInputDescriptorDtos, mockSubmissionRequirementDtos)); VPRequestResponseDto responseDto = service.createAuthorizationRequest(vpRequestCreateDto);