aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/placeholder
diff options
context:
space:
mode:
Diffstat (limited to 'pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/placeholder')
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/placeholder/PlaceholderExtractor.java7
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/placeholder/PlaceholderFilter.java176
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/placeholder/SignaturePlaceholderContext.java95
3 files changed, 52 insertions, 226 deletions
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/placeholder/PlaceholderExtractor.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/placeholder/PlaceholderExtractor.java
index 0a55b834..436024cd 100644
--- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/placeholder/PlaceholderExtractor.java
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/placeholder/PlaceholderExtractor.java
@@ -3,10 +3,7 @@ package at.gv.egiz.pdfas.lib.impl.placeholder;
import at.gv.egiz.pdfas.common.exceptions.PdfAsException;
import at.gv.egiz.pdfas.lib.impl.status.PDFObject;
-import java.util.List;
-
public interface PlaceholderExtractor {
- SignaturePlaceholderData extract(PDFObject doc, String placeholderId, int matchMode) throws PdfAsException;
-
- List<SignaturePlaceholderData> extractList(PDFObject pdfObject, String placeholderID, int placeholderMode) throws PdfAsException;
+ SignaturePlaceholderData extract(PDFObject pdfObject, String placeholderID, int placeholderMode) throws PdfAsException;
+
}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/placeholder/PlaceholderFilter.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/placeholder/PlaceholderFilter.java
index 99c09295..0d652b76 100644
--- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/placeholder/PlaceholderFilter.java
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/placeholder/PlaceholderFilter.java
@@ -24,145 +24,69 @@
package at.gv.egiz.pdfas.lib.impl.placeholder;
import java.io.IOException;
-import java.util.List;
+
+import org.apache.commons.lang3.StringUtils;
import at.gv.egiz.pdfas.common.exceptions.PDFASError;
import at.gv.egiz.pdfas.common.exceptions.PdfAsErrorCarrier;
import at.gv.egiz.pdfas.common.exceptions.PdfAsException;
import at.gv.egiz.pdfas.common.settings.ISettings;
import at.gv.egiz.pdfas.lib.api.IConfigurationConstants;
-import at.gv.egiz.pdfas.lib.impl.configuration.PlaceholderWebConfiguration;
import at.gv.egiz.pdfas.lib.impl.status.OperationStatus;
-import org.apache.commons.lang3.StringUtils;
public class PlaceholderFilter implements IConfigurationConstants,
PlaceholderExtractorConstants {
-
+
public static SignaturePlaceholderData checkPlaceholderSignatureLocation(
- OperationStatus status, ISettings settings, String signatureLocation) throws PdfAsException,
- IOException {
-
- String placeholderID;
-
- if (status.getPlaceholderConfiguration().isGlobalPlaceholderEnabled()) {
- PlaceholderExtractor extractor = status.getBackend().getPlaceholderExtractor();
-
- if(StringUtils.isNotEmpty(signatureLocation)) {
- placeholderID = signatureLocation;
- } else {
- placeholderID = PlaceholderWebConfiguration.getValue(PLACEHOLDER_WEB_ID);
- if(StringUtils.isEmpty(placeholderID)) {
- placeholderID = settings.getValue(PLACEHOLDER_ID);
- }
- }
-
- String placeholderModeString = settings.getValue(PLACEHOLDER_MODE);
- int placeholderMode = PLACEHOLDER_MATCH_MODE_MODERATE;
- if (StringUtils.isNotEmpty(placeholderModeString)) {
- try {
- placeholderMode = Integer.parseInt(placeholderModeString);
- if (placeholderMode < PLACEHOLDER_MODE_MIN
- || placeholderMode > PLACEHOLDER_MODE_MAX) {
- throw new PdfAsErrorCarrier(new PDFASError(
- PDFASError.ERROR_INVALID_PLACEHOLDER_MODE));
- }
- } catch (NumberFormatException e) {
- throw new PdfAsErrorCarrier(new PDFASError(
- PDFASError.ERROR_INVALID_PLACEHOLDER_MODE, e));
- }
- }
- SignaturePlaceholderData signaturePlaceholderData = extractor.extract(status.getPdfObject(), placeholderID, placeholderMode);
- return signaturePlaceholderData;
-
- } else if (status.getPlaceholderConfiguration().isProfileConfigurationEnabled(status.getRequestedSignature().getSignatureProfileID())) {
- //filter for local placeholder in selected profiles
- PlaceholderExtractor extractor = status.getBackend().getPlaceholderExtractor();
- int placeholderMode = PLACEHOLDER_MATCH_MODE_SORTED;
-
- placeholderID = status.getPlaceholderConfiguration().getProfilePlaceholderID(status.getRequestedSignature().getSignatureProfileID());
- if(StringUtils.isNotEmpty(placeholderID)) {
- placeholderMode = PLACEHOLDER_MATCH_MODE_MODERATE;
- }
- String placeholderModeString = settings.getValue(PLACEHOLDER_MODE);
- if (StringUtils.isNotEmpty(placeholderModeString)) {
- try {
- placeholderMode = Integer.parseInt(placeholderModeString);
- if (placeholderMode < PLACEHOLDER_MODE_MIN
- || placeholderMode > PLACEHOLDER_MODE_MAX) {
- throw new PdfAsErrorCarrier(new PDFASError(
- PDFASError.ERROR_INVALID_PLACEHOLDER_MODE));
- }
- } catch (NumberFormatException e) {
- throw new PdfAsErrorCarrier(new PDFASError(
- PDFASError.ERROR_INVALID_PLACEHOLDER_MODE, e));
- }
- }
- SignaturePlaceholderData signaturePlaceholderData = extractor.extract(status.getPdfObject(), placeholderID, placeholderMode);
- return signaturePlaceholderData;
+ OperationStatus status, ISettings settings, String placeholderId) throws PdfAsException, IOException {
+
+ String signingProfile = status.getRequestedSignature().getSignatureProfileID();
+
+ if (status.getPlaceholderConfiguration().isGlobalPlaceholderEnabled()) {
+ String defaultPlaceHolderId = settings.getValue(PLACEHOLDER_ID);
+ return status.getBackend().getPlaceholderExtractor().extract(
+ status.getPdfObject(), getPlaceHolderId(placeholderId, defaultPlaceHolderId) ,
+ getPlaceHolderMode(settings, PLACEHOLDER_MATCH_MODE_SORTED));
+
+ } else if (status.getPlaceholderConfiguration().isProfileConfigurationEnabled(signingProfile)) {
+ String defaultPlaceHolderId = status.getPlaceholderConfiguration().getProfilePlaceholderID(signingProfile);
+ return status.getBackend().getPlaceholderExtractor().extract(
+ status.getPdfObject(), getPlaceHolderId(placeholderId, defaultPlaceHolderId),
+ getPlaceHolderMode(settings,
+ StringUtils.isNotEmpty(defaultPlaceHolderId) ? PLACEHOLDER_MATCH_MODE_MODERATE : PLACEHOLDER_MATCH_MODE_SORTED));
}
return null;
}
-
- public static List<SignaturePlaceholderData> checkPlaceholderSignatureLocationList(OperationStatus status, ISettings settings, String signatureLocation) throws PdfAsException,
- IOException {
- String placeholderID;
-
- if (status.getPlaceholderConfiguration().isGlobalPlaceholderEnabled()) {
- PlaceholderExtractor extractor = status.getBackend().getPlaceholderExtractor();
-
- if(StringUtils.isNotEmpty(signatureLocation)) {
- placeholderID = signatureLocation;
- } else {
- placeholderID = PlaceholderWebConfiguration.getValue(PLACEHOLDER_WEB_ID);
- if(StringUtils.isEmpty(placeholderID)) {
- placeholderID = settings.getValue(PLACEHOLDER_ID);
- }
- }
-
- String placeholderModeString = settings.getValue(PLACEHOLDER_MODE);
- int placeholderMode = PLACEHOLDER_MATCH_MODE_MODERATE;
- if (StringUtils.isNotEmpty(placeholderModeString)) {
- try {
- placeholderMode = Integer.parseInt(placeholderModeString);
- if (placeholderMode < PLACEHOLDER_MODE_MIN
- || placeholderMode > PLACEHOLDER_MODE_MAX) {
- throw new PdfAsErrorCarrier(new PDFASError(
- PDFASError.ERROR_INVALID_PLACEHOLDER_MODE));
- }
- } catch (NumberFormatException e) {
- throw new PdfAsErrorCarrier(new PDFASError(
- PDFASError.ERROR_INVALID_PLACEHOLDER_MODE, e));
- }
- }
- return extractor.extractList(status.getPdfObject(), placeholderID,
- placeholderMode);
-
- } else if (status.getPlaceholderConfiguration().isProfileConfigurationEnabled(status.getRequestedSignature().getSignatureProfileID())) {
- //filter for local placeholder in selected profiles
- PlaceholderExtractor extractor = status.getBackend().getPlaceholderExtractor();
- int placeholderMode = PLACEHOLDER_MATCH_MODE_SORTED;
-
- placeholderID = status.getPlaceholderConfiguration().getProfilePlaceholderID(status.getRequestedSignature().getSignatureProfileID());
- if(StringUtils.isNotEmpty(placeholderID)) {
- placeholderMode = PLACEHOLDER_MATCH_MODE_MODERATE;
- }
- String placeholderModeString = settings.getValue(PLACEHOLDER_MODE);
- if (StringUtils.isNotEmpty(placeholderModeString)) {
- try {
- placeholderMode = Integer.parseInt(placeholderModeString);
- if (placeholderMode < PLACEHOLDER_MODE_MIN
- || placeholderMode > PLACEHOLDER_MODE_MAX) {
- throw new PdfAsErrorCarrier(new PDFASError(
- PDFASError.ERROR_INVALID_PLACEHOLDER_MODE));
- }
- } catch (NumberFormatException e) {
- throw new PdfAsErrorCarrier(new PDFASError(
- PDFASError.ERROR_INVALID_PLACEHOLDER_MODE, e));
- }
- }
- return extractor.extractList(status.getPdfObject(), placeholderID,
- placeholderMode);
- }
- return null;
+
+ private static int getPlaceHolderMode(ISettings settings, int defaultValue) throws PdfAsErrorCarrier {
+ String placeholderModeString = settings.getValue(PLACEHOLDER_MODE);
+ if (StringUtils.isNotEmpty(placeholderModeString)) {
+ try {
+ int placeholderMode = Integer.parseInt(placeholderModeString);
+ if (placeholderMode < PLACEHOLDER_MODE_MIN || placeholderMode > PLACEHOLDER_MODE_MAX) {
+ throw new PdfAsErrorCarrier(new PDFASError(PDFASError.ERROR_INVALID_PLACEHOLDER_MODE));
+
+ }
+ return placeholderMode;
+
+ } catch (NumberFormatException e) {
+ throw new PdfAsErrorCarrier(new PDFASError(
+ PDFASError.ERROR_INVALID_PLACEHOLDER_MODE, e));
+ }
+
+ } else {
+ return defaultValue;
+
+ }
}
+
+ private static String getPlaceHolderId(String requestId, String defaultValue) {
+ if (StringUtils.isEmpty(requestId)) {
+ return defaultValue;
+
+ } else {
+ return requestId;
+
+ }
+ }
} \ No newline at end of file
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/placeholder/SignaturePlaceholderContext.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/placeholder/SignaturePlaceholderContext.java
deleted file mode 100644
index 3c8a6d76..00000000
--- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/placeholder/SignaturePlaceholderContext.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- ******************************************************************************/
-/**
- * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright>
- * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
- * joint initiative of the Federal Chancellery Austria and Graz University of
- * Technology.
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://www.osor.eu/eupl/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- */
-package at.gv.egiz.pdfas.lib.impl.placeholder;
-
-/**
- * Store and retrieve {@link SignaturePlaceholderData} in/from a thread local context.
- *
- * @author exthex
- *
- */
-public class SignaturePlaceholderContext {
-
- private ThreadLocal<SignaturePlaceholderData> sigHolder = new ThreadLocal<SignaturePlaceholderData>();
-
- private static SignaturePlaceholderContext instance = new SignaturePlaceholderContext();
-
- /**
- * Constructor. Private because this is a singleton.
- */
- private SignaturePlaceholderContext() {
-
- }
-
- /**
- * Get the {@link SignaturePlaceholderData} which is currently bound to this thread.
- * Might be null.
- *
- * @return
- */
- public static SignaturePlaceholderData getSignaturePlaceholderData(){
- return instance.sigHolder.get();
- }
-
- /**
- *
- * @return true if there is currently a {@link SignaturePlaceholderData} bound to this thread, false otherwise.
- */
- public static boolean isSignaturePlaceholderDataSet() {
- return instance.sigHolder.get() != null;
- }
-
- /**
- * Bind a {@link SignaturePlaceholderData} to this thread.
- * If the given data is null, the context will be cleared.
- *
- * @param data if null, clears the ThreadLocal, else binds the data to the current thread.
- */
- public static void setSignaturePlaceholderData(SignaturePlaceholderData data) {
- instance.sigHolder.set(data);
- }
-}