diff options
Diffstat (limited to 'src/main/java/at/gv/egiz/pdfas')
3 files changed, 99 insertions, 2 deletions
diff --git a/src/main/java/at/gv/egiz/pdfas/api/commons/SignatureProfile.java b/src/main/java/at/gv/egiz/pdfas/api/commons/SignatureProfile.java index 52bd27f..d5545e6 100644 --- a/src/main/java/at/gv/egiz/pdfas/api/commons/SignatureProfile.java +++ b/src/main/java/at/gv/egiz/pdfas/api/commons/SignatureProfile.java @@ -3,6 +3,8 @@ */
package at.gv.egiz.pdfas.api.commons;
+import java.util.Set;
+
/**
* Definition of a signature profile.
*
@@ -26,4 +28,34 @@ public interface SignatureProfile */
public String getMOAKeyIdentifier();
+ // start - modified by tknall
+
+ /**
+ * Returns the value of a field with a given key for the current profile.
+ * <p>
+ * e.g.<br/><code>signaturProfile.getField(SignatureTypes.SIG_ISSUER)</code><br/>
+ * returns <code>"Issuer-Certificate"</code>
+ * </p>
+ * <code>null</code> is returned if a field with key <code>key</code>
+ * could not be found.
+ *
+ * @param key
+ * The key for the field to be returned or <code>null</code> if
+ * there is not such field.
+ * @return The value of the field with key <code>key</key>.
+ * @see at.knowcenter.wag.egov.egiz.sig.SignatureTypes
+ */
+ public String getField(String key);
+
+ // added by tknall
+
+ /**
+ * Returns a set containing all field keys (properties starting with
+ * <code>sig_obj.CURRENT_PROFILE.key.</code> of the current profiles. The
+ * set should be unmodifiable.
+ */
+ public Set getFieldKeys();
+
+ // stop - modified by tknall
+
}
diff --git a/src/main/java/at/gv/egiz/pdfas/impl/api/PdfAsObject.java b/src/main/java/at/gv/egiz/pdfas/impl/api/PdfAsObject.java index 704f9fd..39b4aff 100644 --- a/src/main/java/at/gv/egiz/pdfas/impl/api/PdfAsObject.java +++ b/src/main/java/at/gv/egiz/pdfas/impl/api/PdfAsObject.java @@ -122,7 +122,28 @@ public class PdfAsObject implements PdfAs final String profileId = profile.getType();
final String moaKeyIdentifier = settings.getSetting("sig_obj." + profileId + "." + MOA_SIGN_KEY_IDENTIFIER_KEY, defaultMoaKeyIdentifiert);
- SignatureProfile signatureProfile = new SignatureProfileImpl(profileId, moaKeyIdentifier);
+ // modified by tknall
+ SignatureProfileImpl signatureProfile = new SignatureProfileImpl(profileId, moaKeyIdentifier);
+
+ // start - added by tknall
+
+ // add key values
+ final String parentProperty = "sig_obj." + profileId + ".key.";
+ ArrayList keys = settings.getKeys(parentProperty);
+ if (keys != null) {
+ Iterator keyIt = keys.iterator();
+ while (keyIt.hasNext()) {
+ String key = (String) keyIt.next();
+ if (key != null && key.length() > 0) {
+ String value = settings.getValueFromKey(parentProperty + key);
+ if (value != null && value.length() > 0) {
+ signatureProfile.setField(key, value);
+ }
+ }
+ }
+ }
+ // stop - added by tknall
+
profileInformation.add(signatureProfile);
}
diff --git a/src/main/java/at/gv/egiz/pdfas/impl/api/commons/SignatureProfileImpl.java b/src/main/java/at/gv/egiz/pdfas/impl/api/commons/SignatureProfileImpl.java index 0d2bfdd..f0422f6 100644 --- a/src/main/java/at/gv/egiz/pdfas/impl/api/commons/SignatureProfileImpl.java +++ b/src/main/java/at/gv/egiz/pdfas/impl/api/commons/SignatureProfileImpl.java @@ -3,6 +3,10 @@ */
package at.gv.egiz.pdfas.impl.api.commons;
+import java.util.Collections;
+import java.util.Hashtable;
+import java.util.Set;
+
import at.gv.egiz.pdfas.api.commons.SignatureProfile;
/**
@@ -22,7 +26,17 @@ public class SignatureProfileImpl implements SignatureProfile * The MOA key identifiert of this profile.
*/
protected String moaKeyIdentifier = null;
-
+
+ // start - added by tknall
+
+ /**
+ * A Hashtable containing all field values (as String) for the current profiles
+ * (<code>sig_obj.PROFILE.key.*</code>).
+ */
+ protected Hashtable fields = new Hashtable();
+
+ // stop - added by tknall
+
/**
* Constructor.
*
@@ -53,4 +67,34 @@ public class SignatureProfileImpl implements SignatureProfile return this.moaKeyIdentifier;
}
+ // start - added by tknall
+
+ /**
+ * Returns the value of a field with a given key for the current profile.
+ * <p>e.g.<br/><code>signaturProfile.getField(SignatureTypes.SIG_ISSUER)</code><br/>
+ * returns <code>"Issuer-Certificate"</code></p>
+ * <code>null</code> is returned if a field with key <code>key</code> could not be found.
+ * @param key The key for the field to be returned or <code>null</code> if there is not such field.
+ * @return The value of the field with key <code>key</key>.
+ * @see at.knowcenter.wag.egov.egiz.sig.SignatureTypes
+ */
+ public String getField(String key) {
+ return (String) this.fields.get(key);
+ }
+
+ /**
+ * Sets the value <code>value</code> for a certain field with key <code>key</code>.
+ * @param key The key of the field.
+ * @param value The value of the field with key <code>key</code>.
+ */
+ public void setField(String key, String value) {
+ this.fields.put(key, value);
+ }
+
+ public Set getFieldKeys() {
+ return Collections.unmodifiableSet(this.fields.keySet());
+ }
+
+ // stop - added by tknall
+
}
|