Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/manual_push_trigger.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Cardprinter trigger for maven install
name: MSP Print-Service trigger for maven install

on: workflow_dispatch

Expand Down Expand Up @@ -43,7 +43,7 @@ jobs:
${{ runner.os }}-maven-${{ env.BRANCH_NAME }}

- name: Setup the settings file for ossrh server
run: echo "<settings> <servers> <server> <id>ossrh</id> <username>${{secrets.ossrh_user}}</username> <password>${{secrets.ossrh_secret}}</password> </server> </servers> <profiles> <profile> <id>ossrh</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <gpg.executable>gpg2</gpg.executable> <gpg.passphrase>${{secrets.gpg_secret}}</gpg.passphrase> </properties> </profile> <profile> <id>allow-snapshots</id> <activation><activeByDefault>true</activeByDefault></activation> <repositories> <repository> <id>snapshots-repo</id> <url>https://oss.sonatype.org/content/repositories/snapshots</url> <releases><enabled>false</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </repository> <repository> <id>releases-repo</id> <url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>false</enabled></snapshots> </repository> </repositories> </profile> <profile> <id>sonar</id> <properties> <sonar.sources>.</sonar.sources> <sonar.host.url>https://sonarcloud.io</sonar.host.url> </properties> <activation> <activeByDefault>false</activeByDefault> </activation> </profile> </profiles> </settings>" > $GITHUB_WORKSPACE/settings.xml
run: echo "<settings> <servers> <server> <id>ossrh</id> <username>${{secrets.ossrh_user}}</username> <password>${{secrets.ossrh_secret}}</password> </server> </servers> <profiles> <profile> <id>ossrh</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <gpg.executable>gpg2</gpg.executable> <gpg.passphrase>${{secrets.gpg_secret}}</gpg.passphrase> </properties> </profile> <profile> <id>allow-snapshots</id> <activation><activeByDefault>true</activeByDefault></activation> <repositories> <repository> <id>snapshots-repo</id> <url>https://oss.sonatype.org/content/repositories/snapshots</url> <releases><enabled>false</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </repository> <repository> <id>releases-repo</id> <url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>false</enabled></snapshots> </repository> <repository> <id>danubetech-maven-public</id> <url>https://repo.danubetech.com/repository/maven-public/</url> </repository></repositories> </profile> <profile> <id>sonar</id> <properties> <sonar.sources>.</sonar.sources> <sonar.host.url>https://sonarcloud.io</sonar.host.url> </properties> <activation> <activeByDefault>false</activeByDefault> </activation> </profile> </profiles> </settings>" > $GITHUB_WORKSPACE/settings.xml


- name: Build with Maven
Expand Down
40 changes: 26 additions & 14 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
</parent>
<groupId>io.mosip.print</groupId>
<artifactId>print</artifactId>
<version>1.2.0.1-SNAPSHOT</version>
<version>1.2.0.1-B1</version>
<name>print</name>

<properties>
Expand Down Expand Up @@ -39,16 +39,16 @@
<sonar.cpd.exclusions>**/dto/**,**/config/**,**/api/**</sonar.cpd.exclusions>
<io.micrometer.prometheus.version>1.4.2</io.micrometer.prometheus.version>
<gson.version>2.8.4</gson.version>
<kernel.websub.version>1.2.0.1-SNAPSHOT</kernel.websub.version>
<kernel.dataaccess.version>1.2.0.1-SNAPSHOT</kernel.dataaccess.version>
<kernel.websub.version>1.2.0.1-B1</kernel.websub.version>
<kernel.dataaccess.version>1.2.0.1-B1</kernel.dataaccess.version>
<itextcore.version>7.1.0</itextcore.version>
<itexthtml2pdf.version>2.0.0</itexthtml2pdf.version>
<itext.version>5.5.13</itext.version>
<commons-math3>3.6.1</commons-math3>
<commons-lang3>3.7</commons-lang3>
<commons-io>2.6</commons-io>
<commons-codec>1.11</commons-codec>
<bouncycastle.version>1.66</bouncycastle.version>
<bouncycastle.version>1.68</bouncycastle.version>
<jwt.version> 3.8.1</jwt.version>
<google.zxing.version>3.3.3</google.zxing.version>
<postgresql.version>42.2.2</postgresql.version>
Expand All @@ -70,6 +70,12 @@
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
<version>2.0.2.RELEASE</version>
<exclusions>
<exclusion>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
Expand Down Expand Up @@ -145,7 +151,7 @@
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<artifactId>bcprov-jdk15to18</artifactId>
<version>${bouncycastle.version}</version>
</dependency>
<dependency>
Expand Down Expand Up @@ -209,6 +215,12 @@
<groupId>io.mosip.kernel</groupId>
<artifactId>kernel-websubclient-api</artifactId>
<version>${kernel.websub.version}</version>
<exclusions>
<exclusion>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.mosip.kernel</groupId>
Expand Down Expand Up @@ -240,16 +252,16 @@
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.12.0</version>
</dependency>
<dependency>
<groupId>info.weboftrust</groupId>
<artifactId>ld-signatures-java</artifactId>
<version>0.8.0</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>${postgresql.version}</version>
</dependency>
<dependency>
<groupId>io.mosip.vercred</groupId>
<artifactId>vcverifier</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>

<repositories>
Expand All @@ -271,10 +283,10 @@
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>danubetech-maven-public</id>
<url>https://repo.danubetech.com/repository/maven-public/</url>
</repository>
<repository>
<id>danubetech-maven-public</id>
<url>https://repo.danubetech.com/repository/maven-public/</url>
</repository>
</repositories>

<distributionManagement>
Expand Down
20 changes: 0 additions & 20 deletions src/main/java/io/mosip/print/PrintPDFApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,9 @@
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Primary;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;

import io.mosip.print.service.impl.CbeffImpl;
import io.mosip.print.spi.CbeffUtil;

@SpringBootApplication(scanBasePackages = { "io.mosip.print.*", "${mosip.auth.adapter.impl.basepackage}" }, exclude = { SecurityAutoConfiguration.class, DataSourceAutoConfiguration.class,
HibernateJpaAutoConfiguration.class,
Expand All @@ -26,21 +21,6 @@
@EnableAsync
public class PrintPDFApplication {


@Bean
@Primary
public CbeffUtil getCbeffUtil() {
return new CbeffImpl();
}

@Bean
public ThreadPoolTaskScheduler taskScheduler() {
ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
threadPoolTaskScheduler.setPoolSize(5);
threadPoolTaskScheduler.setThreadNamePrefix("ThreadPoolTaskScheduler");
return threadPoolTaskScheduler;
}

public static void main(String[] args) {
SpringApplication.run(PrintPDFApplication.class, args);
}
Expand Down
15 changes: 15 additions & 0 deletions src/main/java/io/mosip/print/config/PrintConfig.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,29 @@
package io.mosip.print.config;

import io.mosip.print.service.impl.CbeffImpl;
import io.mosip.print.spi.CbeffUtil;
import io.mosip.vercred.CredentialsVerifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.scheduling.TaskScheduler;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;


@Configuration
public class PrintConfig {

@Bean
@Primary
public CbeffUtil getCbeffUtil() {
return new CbeffImpl();
}

@Bean
public CredentialsVerifier credentialsVerifier() {
return new CredentialsVerifier();
}

@Bean
public TaskScheduler taskScheduler() {
ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package io.mosip.print.constant;

/**
* An Enum for credential status.
*/
public enum CredentialStatusConstant {

RECEIVED,
PRINTED,
ERROR
}
2 changes: 1 addition & 1 deletion src/main/java/io/mosip/print/controller/Print.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public class Print {
@PostMapping(path = "/callback/notifyPrint", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
@PreAuthenticateContentAndVerifyIntent(secret = "${mosip.event.secret}", callback = "/v1/cardprint/print/callback/notifyPrint", topic = "${mosip.event.topic}")
public ResponseEntity<String> handleSubscribeEvent(@RequestBody EventModel eventModel) throws Exception {
printLogger.info("event recieved from websub"+", id: {}",eventModel.getEvent().getId());
printLogger.info("Event received from WebSub"+", id: {}",eventModel.getEvent().getId());
boolean isPrinted = printService.generateCard(eventModel);
printLogger.info("printing status : {} for event id: {}",isPrinted,eventModel.getEvent().getId());
return new ResponseEntity<>("request accepted.", HttpStatus.OK);
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/io/mosip/print/service/PrintService.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public interface PrintService {
* @return
* @throws Exception
*/
public boolean generateCard(EventModel eventModel) throws Exception;
public boolean generateCard(EventModel eventModel);

// Map<String, byte[]> getDocuments(String credentialSubject, String sign,
// String cardType,
Expand Down
60 changes: 30 additions & 30 deletions src/main/java/io/mosip/print/service/UinCardGenerator.java
Original file line number Diff line number Diff line change
@@ -1,30 +1,30 @@
package io.mosip.print.service;
import java.io.InputStream;
import io.mosip.print.constant.UinCardType;
import io.mosip.print.exception.ApisResourceAccessException;
/**
* The Interface UinCardGenerator.
*
* @author M1048358 Alok
*
* @param <I>
* the generic type
*/
public interface UinCardGenerator<I> {
/**
* Generate uin card.
*
* @param in
* the in
* @param type
* the type
* @param password
* the password
* @return the i
*/
public I generateUinCard(InputStream in, UinCardType type, String password) throws ApisResourceAccessException;
}
package io.mosip.print.service;

import io.mosip.print.constant.UinCardType;
import io.mosip.print.exception.ApisResourceAccessException;

import java.io.InputStream;

/**
* The Interface UinCardGenerator.
*
* @author M1048358 Alok
*
* @param <I>
* the generic type
*/
public interface UinCardGenerator<I> {

/**
* Generate uin card.
*
* @param in
* the in
* @param type
* the type
* @param password
* the password
* @return the i
*/
public I generateUinCard(InputStream in, UinCardType type, String password) throws ApisResourceAccessException;
}
48 changes: 15 additions & 33 deletions src/main/java/io/mosip/print/service/impl/PDFGeneratorImpl.java
Original file line number Diff line number Diff line change
@@ -1,25 +1,5 @@
package io.mosip.print.service.impl;

import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.security.GeneralSecurityException;
import java.security.PrivateKey;
import java.security.Provider;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.List;

import javax.imageio.ImageIO;

import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import com.itextpdf.html2pdf.ConverterProperties;
import com.itextpdf.html2pdf.HtmlConverter;
import com.itextpdf.html2pdf.css.media.MediaDeviceDescription;
Expand All @@ -38,26 +18,28 @@
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfSignatureAppearance;
import com.itextpdf.text.pdf.PdfStamper;
import com.itextpdf.text.pdf.security.BouncyCastleDigest;
import com.itextpdf.text.pdf.security.CertificateUtil;
import com.itextpdf.text.pdf.security.CrlClient;
import com.itextpdf.text.pdf.security.CrlClientOnline;
import com.itextpdf.text.pdf.security.ExternalDigest;
import com.itextpdf.text.pdf.security.ExternalSignature;
import com.itextpdf.text.pdf.security.MakeSignature;
import com.itextpdf.text.pdf.security.*;
import com.itextpdf.text.pdf.security.MakeSignature.CryptoStandard;
import com.itextpdf.text.pdf.security.OcspClient;
import com.itextpdf.text.pdf.security.OcspClientBouncyCastle;
import com.itextpdf.text.pdf.security.PrivateKeySignature;
import com.itextpdf.text.pdf.security.TSAClient;
import com.itextpdf.text.pdf.security.TSAClientBouncyCastle;

import io.mosip.print.constant.PDFGeneratorExceptionCodeConstant;
import io.mosip.print.exception.PDFGeneratorException;
import io.mosip.print.logger.PrintLogger;
import io.mosip.print.model.CertificateEntry;
import io.mosip.print.spi.PDFGenerator;
import io.mosip.print.util.EmptyCheckUtils;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.*;
import java.net.URL;
import java.security.GeneralSecurityException;
import java.security.PrivateKey;
import java.security.Provider;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.List;

/**
* The PdfGeneratorImpl is the class you will use most when converting processed
Expand Down
Loading