aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-common
diff options
context:
space:
mode:
authorAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2014-10-15 18:07:20 +0200
committerAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2014-10-15 18:07:20 +0200
commit0b663afa4d0167df1e838e1f37bb5862e8951037 (patch)
tree1b962dedd3c2e1eba042c89fbf6191b42218bd36 /pdf-as-common
parentd9dcd54eae2b3a8e46dce69c96eca7c97f1be429 (diff)
downloadpdf-as-4-0b663afa4d0167df1e838e1f37bb5862e8951037.tar.gz
pdf-as-4-0b663afa4d0167df1e838e1f37bb5862e8951037.tar.bz2
pdf-as-4-0b663afa4d0167df1e838e1f37bb5862e8951037.zip
PDF-AS Errorhandling redesign only PDFASError Exceptions are returned
!
Diffstat (limited to 'pdf-as-common')
-rw-r--r--pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/ErrorConstants.java20
-rw-r--r--pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/PDFASError.java90
-rw-r--r--pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/PdfAsErrorCarrier.java14
-rw-r--r--pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/SLPdfAsException.java26
-rw-r--r--pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/messages/ErrorCodeResolver.java67
-rw-r--r--pdf-as-common/src/main/resources/resources/messages/error.properties24
6 files changed, 231 insertions, 10 deletions
diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/ErrorConstants.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/ErrorConstants.java
new file mode 100644
index 00000000..04314c6c
--- /dev/null
+++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/ErrorConstants.java
@@ -0,0 +1,20 @@
+package at.gv.egiz.pdfas.common.exceptions;
+
+public interface ErrorConstants {
+ // Code below 10000 are reserved for SL Error Codes
+
+ public static final long ERROR_GENERIC = 10000;
+ public static final long ERROR_NO_INPUT = 10001;
+
+ // Signature Errors
+ public static final long ERROR_SIG_INVALID_STATUS = 11004;
+ public static final long ERROR_SIG_INVALID_BKU_SIG = 11008;
+ public static final long ERROR_SIG_INVALID_PROFILE = 11009;
+
+ public static final long ERROR_SIG_CERTIFICATE_MISSMATCH = 11019;
+
+ // Verification Errors
+
+ // Configuration Errors:
+ public static final long ERROR_SET_INVALID_SETTINGS_OBJ = 13001;
+}
diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/PDFASError.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/PDFASError.java
new file mode 100644
index 00000000..8a6d7379
--- /dev/null
+++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/PDFASError.java
@@ -0,0 +1,90 @@
+package at.gv.egiz.pdfas.common.exceptions;
+
+import at.gv.egiz.pdfas.common.messages.ErrorCodeResolver;
+
+/**
+ * The Class PDFASError.
+ */
+public class PDFASError extends Exception {
+
+ /** The Constant serialVersionUID. */
+ private static final long serialVersionUID = 1233586898708485346L;
+
+ /** The code. */
+ private long code;
+
+ /**
+ * Instantiates a new PDFAS error.
+ *
+ * @param code the code
+ */
+ public PDFASError(long code) {
+ super(ErrorCodeResolver.resolveMessage(code));
+ this.code = code;
+ }
+
+ /**
+ * Instantiates a new PDFAS error.
+ *
+ * @param code the code
+ * @param e the e
+ */
+ public PDFASError(long code, Throwable e) {
+ super(ErrorCodeResolver.resolveMessage(code), e);
+ this.code = code;
+ }
+
+ /**
+ * Instantiates a new PDFAS error.
+ *
+ * @param code the code
+ * @param info the info
+ * @param e the e
+ */
+ public PDFASError(long code, String info, Throwable e) {
+ super(info, e);
+ this.code = code;
+ }
+
+ /**
+ * Instantiates a new PDFAS error.
+ *
+ * @param code the code
+ * @param info the info
+ */
+ public PDFASError(long code, String info) {
+ super(info);
+ this.code = code;
+ }
+
+ /**
+ * Gets the code.
+ *
+ * @return the code
+ */
+ public long getCode() {
+ return code;
+ }
+
+ /**
+ * Gets the info.
+ *
+ * @return the info
+ */
+ public String getInfo() {
+ return this.getMessage();
+ }
+
+ /**
+ * Gets the code info.
+ *
+ * @return the code info
+ */
+ public String getCodeInfo() {
+ return ErrorCodeResolver.resolveMessage(code);
+ }
+
+ public static String buildInfoString(long code, Object ... args) {
+ return String.format(ErrorCodeResolver.resolveMessage(code), args);
+ }
+}
diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/PdfAsErrorCarrier.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/PdfAsErrorCarrier.java
new file mode 100644
index 00000000..f5c2fa9d
--- /dev/null
+++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/PdfAsErrorCarrier.java
@@ -0,0 +1,14 @@
+package at.gv.egiz.pdfas.common.exceptions;
+
+public class PdfAsErrorCarrier extends PdfAsException {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 8823547416257994310L;
+
+ public PdfAsErrorCarrier(PDFASError error) {
+ super("Carrier", error);
+ }
+
+}
diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/SLPdfAsException.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/SLPdfAsException.java
index 64536ea4..a0ee44d9 100644
--- a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/SLPdfAsException.java
+++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/SLPdfAsException.java
@@ -23,7 +23,6 @@
******************************************************************************/
package at.gv.egiz.pdfas.common.exceptions;
-
public class SLPdfAsException extends PdfAsException {
/**
@@ -33,15 +32,22 @@ public class SLPdfAsException extends PdfAsException {
private int code;
private String info;
-
+
public SLPdfAsException(int code, String info) {
- super();
- this.code = code;
- this.info = info;
- }
-
-
+ super();
+ this.code = code;
+ this.info = info;
+ }
+
+ public int getCode() {
+ return code;
+ }
+
+ public String getInfo() {
+ return info;
+ }
+
protected String localizeMessage(String msgId) {
- return String.format("%d : %s", code, info);
- }
+ return String.format("%d : %s", code, info);
+ }
}
diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/messages/ErrorCodeResolver.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/messages/ErrorCodeResolver.java
new file mode 100644
index 00000000..2ae6838e
--- /dev/null
+++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/messages/ErrorCodeResolver.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * <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.
+ ******************************************************************************/
+package at.gv.egiz.pdfas.common.messages;
+
+import java.util.Locale;
+import java.util.ResourceBundle;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ErrorCodeResolver {
+ private static final String messageResource = "resources.messages.error";
+ private static final String missingMsg = "No Information for code: ";
+
+ private static final Logger logger = LoggerFactory.getLogger(ErrorCodeResolver.class);
+
+ private static ResourceBundle bundle;
+
+ static {
+ bundle = ResourceBundle.getBundle(messageResource);
+ if(bundle == null) {
+ logger.error("Failed to load resource bundle!!");
+ System.err.println("Failed to load resource bundle!!");
+ }
+ }
+
+ public static void forceLocale(Locale locale) {
+ bundle = ResourceBundle.getBundle(messageResource, locale);
+ }
+
+ public static String resolveMessage(long code) {
+ String msgId = String.valueOf(code);
+ if(bundle == null) {
+ return missingMsg + msgId;
+ }
+
+ if(bundle.containsKey(msgId)) {
+ String value = bundle.getString(msgId);
+ if(value == null) {
+ return missingMsg + msgId;
+ }
+ return value;
+ }
+ return missingMsg + msgId;
+ }
+}
diff --git a/pdf-as-common/src/main/resources/resources/messages/error.properties b/pdf-as-common/src/main/resources/resources/messages/error.properties
new file mode 100644
index 00000000..2bacde27
--- /dev/null
+++ b/pdf-as-common/src/main/resources/resources/messages/error.properties
@@ -0,0 +1,24 @@
+10000=Generic Error
+10001=No Input provided
+
+11001=Failed to create signature
+11002=Failed to open keystore
+11003=Failed to start signature process
+11004=Invalid PDF-AS status handed over
+11005=Failed to continue signature process
+11006=Failed to finish signature process
+11007=Failed to determine Signature Profile
+11008=Signature created by the BKU is not valid
+11009=Signature profile %s not available
+11010=No signature data available
+11011=No data sink available
+11012=Document is protected
+11013=Invalid Alias for Keystore Entry
+11014=Invalid Keystore Type
+11015=Keystore password is null
+11016=Keyentry password is null
+11017=Failed to retrieve certificate
+11018=Given Alias contains no private key
+11019=Signature was created for wrong certificate
+
+13001=Invalid Configuration Object \ No newline at end of file