aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoremusic <emina.music@egiz.gv.at>2018-05-14 16:38:43 +0200
committeremusic <emina.music@egiz.gv.at>2018-05-14 16:38:43 +0200
commit797634c687c6f44d314e4baa3fed220d142eed73 (patch)
tree56dc1ce81e81ff100261aa779a68dcbc61ecc0e5
parent0a59371516348ba36163128060e02e997099fcbd (diff)
downloadpdf-as-4-797634c687c6f44d314e4baa3fed220d142eed73.tar.gz
pdf-as-4-797634c687c6f44d314e4baa3fed220d142eed73.tar.bz2
pdf-as-4-797634c687c6f44d314e4baa3fed220d142eed73.zip
changes in pdf-as-lib4.1.3
-rw-r--r--build.gradle2
-rw-r--r--pdf-as-cli/src/main/java/at/gv/egiz/pdfas/cli/Main.java4
-rw-r--r--pdf-as-lib/src/main/resources/config/config.zipbin1276569 -> 1276569 bytes
-rw-r--r--pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/positioning/Positioning.java8
-rw-r--r--pdf-as-web/build.gradle3
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/config/WebConfiguration.java13
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFData.java37
-rw-r--r--pdf-as-web/src/main/webapp/assets/img/localBKU.pngbin6650 -> 1750 bytes
-rw-r--r--pdf-as-web/src/main/webapp/assets/img/mobileBKU.pngbin6269 -> 1811 bytes
9 files changed, 59 insertions, 8 deletions
diff --git a/build.gradle b/build.gradle
index f8ecfad6..cb63098e 100644
--- a/build.gradle
+++ b/build.gradle
@@ -16,7 +16,7 @@ task wrapper(type: Wrapper) {
allprojects {
apply plugin: 'com.github.ben-manes.versions'
repositories { mavenCentral() }
- version = '4.1.2'
+ version = '4.1.3'
}
configurations {
diff --git a/pdf-as-cli/src/main/java/at/gv/egiz/pdfas/cli/Main.java b/pdf-as-cli/src/main/java/at/gv/egiz/pdfas/cli/Main.java
index 455fd808..4aceb329 100644
--- a/pdf-as-cli/src/main/java/at/gv/egiz/pdfas/cli/Main.java
+++ b/pdf-as-cli/src/main/java/at/gv/egiz/pdfas/cli/Main.java
@@ -457,7 +457,7 @@ public class Main {
//make output file protected from copying and extraction content
- if(configuration.hasValue(DEFAULT_CONFIG_PROTECT_PDF) && IConfigurationConstants.TRUE.equalsIgnoreCase(configuration.getValue(DEFAULT_CONFIG_PROTECT_PDF)))
+ /*if(configuration.hasValue(DEFAULT_CONFIG_PROTECT_PDF) && IConfigurationConstants.TRUE.equalsIgnoreCase(configuration.getValue(DEFAULT_CONFIG_PROTECT_PDF)))
{
SecureRandom random = new SecureRandom();
byte seed[] = random.generateSeed(50);
@@ -473,7 +473,7 @@ public class Main {
document.save(outputPdfFile);
document.close();
logger.info("Added Protection Parameters");
- }
+ }*/
}
private static void perform_verify(CommandLine cli) throws Exception {
diff --git a/pdf-as-lib/src/main/resources/config/config.zip b/pdf-as-lib/src/main/resources/config/config.zip
index a10f4f52..0b61bfdd 100644
--- a/pdf-as-lib/src/main/resources/config/config.zip
+++ b/pdf-as-lib/src/main/resources/config/config.zip
Binary files differ
diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/positioning/Positioning.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/positioning/Positioning.java
index 680abe6d..1a51b4db 100644
--- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/positioning/Positioning.java
+++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/positioning/Positioning.java
@@ -29,6 +29,7 @@ import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
+import org.apache.pdfbox.pdmodel.PDPageTree;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -170,7 +171,7 @@ public class Positioning {
page = pos.getPage();
// System.out.println("XXXXPAGE="+page+" doc_pages="+doc_pages);
- if (page > doc_pages) {
+ if (page > doc_pages && page!=1) {
make_new_page = true;
page = doc_pages;
// throw new PDFDocumentException(227, "Page number is to big(="
@@ -178,14 +179,15 @@ public class Positioning {
// ") cannot be parsed.");
}
- if (page < doc_pages) {
+ if (page < doc_pages && page!=1) {
page = page - 1;
}
}
PDPage pdPage = pdfDataSource.getPage(page-1);
-
+ //PDPage pdPage = pdfDataSource.getPages().get(page);
+
PDRectangle cropBox = pdPage.getCropBox();
// fallback to MediaBox if Cropbox not available!
diff --git a/pdf-as-web/build.gradle b/pdf-as-web/build.gradle
index 02176587..87e303af 100644
--- a/pdf-as-web/build.gradle
+++ b/pdf-as-web/build.gradle
@@ -49,6 +49,9 @@ dependencies {
compile project (':pdf-as-web-status')
compile project (':pdf-as-web-statistic-api')
compile group: 'commons-fileupload', name: 'commons-fileupload', version: '1.3.1'
+ compile group: 'org.apache.pdfbox', name: 'pdfbox', version: '2.0.3'
+ compile group: 'org.apache.pdfbox', name: 'pdfbox-tools', version: '2.0.3'
+ compile group: 'org.apache.pdfbox', name: 'preflight', version: '2.0.3'
compile group: 'opensymphony', name: 'sitemesh', version: '2.4.2'
compile "commons-codec:commons-codec:1.9"
compile 'org.apache.commons:commons-lang3:3.3.2'
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/config/WebConfiguration.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/config/WebConfiguration.java
index 9b14df16..d63f698f 100644
--- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/config/WebConfiguration.java
+++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/config/WebConfiguration.java
@@ -586,4 +586,17 @@ public class WebConfiguration implements IConfigurationConstants {
}
return ivalue;
}
+
+
+ public static boolean isPdfProtected()
+ {
+ String value = properties.getProperty(DEFAULT_CONFIG_PROTECT_PDF);
+ if (value != null) {
+ if (value.equals("true")) {
+ return true;
+ }
+ }
+ return false;
+ }
+
}
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFData.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFData.java
index abbfc639..4d3d1872 100644
--- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFData.java
+++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFData.java
@@ -23,8 +23,11 @@
******************************************************************************/
package at.gv.egiz.pdfas.web.servlets;
-import java.io.IOException;
-import java.io.OutputStream;
+import java.io.*;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.security.SecureRandom;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
@@ -32,6 +35,11 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import at.gv.egiz.pdfas.web.config.WebConfiguration;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
+import org.apache.pdfbox.pdmodel.PDDocument;
+import org.apache.pdfbox.pdmodel.encryption.AccessPermission;
+import org.apache.pdfbox.pdmodel.encryption.StandardProtectionPolicy;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -87,6 +95,31 @@ public class PDFData extends HttpServlet {
if (signedData != null) {
+ /*if (WebConfiguration.isPdfProtected()) {
+ File tempFile = new File(System.getProperty("java.io.tmpdir"),"protect.pdf");
+ FileUtils.writeByteArrayToFile(tempFile, signedData);
+ Path tempPath = tempFile.toPath();
+ SecureRandom random = new SecureRandom();
+ byte seed[] = random.generateSeed(50);
+ String ownerPassword = new String(seed, StandardCharsets.UTF_8);
+ PDDocument document = PDDocument.load(tempFile);
+ AccessPermission accessPermission = new AccessPermission();
+ accessPermission.setCanExtractContent(false);
+ accessPermission.setCanExtractForAccessibility(true);
+ StandardProtectionPolicy spp = new StandardProtectionPolicy(ownerPassword, "", accessPermission);
+ spp.setEncryptionKeyLength(128);
+ spp.setPermissions(accessPermission);
+ document.protect(spp);
+ document.save(tempFile);
+ document.close();
+ //accessPermission.setCanModify(false);
+ signedData = Files.readAllBytes(tempPath);
+ logger.info("Added Protection Parameters");
+ if (tempFile.exists()) {
+ tempFile.delete();
+ }
+ }*/
+
if(WebConfiguration.isKeepSignedDocument()) {
if(PdfAsHelper.isSignedDataExpired(request, response)) {
logger.info("Destroying expired signed data in session");
diff --git a/pdf-as-web/src/main/webapp/assets/img/localBKU.png b/pdf-as-web/src/main/webapp/assets/img/localBKU.png
index 2ec41892..cd5069b5 100644
--- a/pdf-as-web/src/main/webapp/assets/img/localBKU.png
+++ b/pdf-as-web/src/main/webapp/assets/img/localBKU.png
Binary files differ
diff --git a/pdf-as-web/src/main/webapp/assets/img/mobileBKU.png b/pdf-as-web/src/main/webapp/assets/img/mobileBKU.png
index daa8fa3f..037de1bb 100644
--- a/pdf-as-web/src/main/webapp/assets/img/mobileBKU.png
+++ b/pdf-as-web/src/main/webapp/assets/img/mobileBKU.png
Binary files differ