diff options
| author | pdanner <pdanner@7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c> | 2010-12-01 14:02:31 +0000 | 
|---|---|---|
| committer | pdanner <pdanner@7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c> | 2010-12-01 14:02:31 +0000 | 
| commit | a4f9018bf6a9fd74312ad62a3633a71a9724f3ab (patch) | |
| tree | 0fc521352559bb102c105496100ad9c7b9a1d1ec /src/main/java/at/gv/egiz/pdfas/impl/signator/binary/BinarySignator_1_0_0.java | |
| parent | 23b3cb0f072ccbe12163dc25e10da64baeec2f54 (diff) | |
| download | pdf-as-3-a4f9018bf6a9fd74312ad62a3633a71a9724f3ab.tar.gz pdf-as-3-a4f9018bf6a9fd74312ad62a3633a71a9724f3ab.tar.bz2 pdf-as-3-a4f9018bf6a9fd74312ad62a3633a71a9724f3ab.zip | |
fixed override properties for binsig with placeholders
git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/trunk@659 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c
Diffstat (limited to 'src/main/java/at/gv/egiz/pdfas/impl/signator/binary/BinarySignator_1_0_0.java')
| -rw-r--r-- | src/main/java/at/gv/egiz/pdfas/impl/signator/binary/BinarySignator_1_0_0.java | 52 | 
1 files changed, 30 insertions, 22 deletions
| diff --git a/src/main/java/at/gv/egiz/pdfas/impl/signator/binary/BinarySignator_1_0_0.java b/src/main/java/at/gv/egiz/pdfas/impl/signator/binary/BinarySignator_1_0_0.java index 4b6f483..3d4be31 100644 --- a/src/main/java/at/gv/egiz/pdfas/impl/signator/binary/BinarySignator_1_0_0.java +++ b/src/main/java/at/gv/egiz/pdfas/impl/signator/binary/BinarySignator_1_0_0.java @@ -43,6 +43,7 @@ import at.gv.egiz.pdfas.impl.signator.IncrementalUpdateHelper;  import at.gv.egiz.pdfas.utils.OgnlUtil;
  import at.knowcenter.wag.egov.egiz.PdfAS;
  import at.knowcenter.wag.egov.egiz.PdfASID;
 +import at.knowcenter.wag.egov.egiz.cfg.OverridePropertyHolder;
  import at.knowcenter.wag.egov.egiz.cfg.SettingsReader;
  import at.knowcenter.wag.egov.egiz.exceptions.NormalizeException;
  import at.knowcenter.wag.egov.egiz.exceptions.PDFDocumentException;
 @@ -322,28 +323,35 @@ public class BinarySignator_1_0_0 implements Signator     */
    protected void fillReplacesWithValues(final IncrementalUpdateInformation iui)
    {
 -    Iterator it = iui.replaces.iterator();
 -    HashMap ognlCtx = new HashMap();
 -    ognlCtx.put("iui", iui);
 -    ognlCtx.put("sso", iui.signed_signature_object);
 -    ognlCtx.put("issuer", iui.signed_signature_object.getIssuerDNMap());
 -    ognlCtx.put("subject", iui.signed_signature_object.getSubjectDNMap());
 -    OgnlUtil ognl = new OgnlUtil(ognlCtx);
 -
 -    while (it.hasNext())
 -    {
 -      ReplaceInfo ri = (ReplaceInfo) it.next();
 -      
 -      // dferbas
 -      if (ognl.containsExpression(ri.sfd.value)) {
 -         // evaluate expression
 -         String res = ognl.compileMessage(ri.sfd.value);
 -         
 -         ri.value = this.normalizer.normalize(res, true);                 
 -         
 -      } else {             
 -         ri.value = iui.signed_signature_object.retrieveStringValue(ri.sfd.field_name);
 -      }
 +     try {
 +       Iterator it = iui.replaces.iterator();
 +       HashMap ognlCtx = new HashMap();
 +       ognlCtx.put("iui", iui);
 +       ognlCtx.put("sso", iui.signed_signature_object);
 +       ognlCtx.put("issuer", iui.signed_signature_object.getIssuerDNMap());
 +       ognlCtx.put("subject", iui.signed_signature_object.getSubjectDNMap());
 +       OgnlUtil ognl = new OgnlUtil(ognlCtx);
 +       
 +       OverridePropertyHolder.setOgnlUtil(ognl);
 +   
 +       while (it.hasNext()) {       
 +         ReplaceInfo ri = (ReplaceInfo) it.next();
 +         String overrideVal = OverridePropertyHolder.getProperty(ri.sfd.field_name);
 +         if (overrideVal != null) {
 +            ri.sfd.value = overrideVal;
 +            ri.value = overrideVal;
 +         } else if (ognl.containsExpression(ri.sfd.value)) {       // dferbas
 +            // evaluate expression
 +            String res = ognl.compileMessage(ri.sfd.value);
 +            
 +            ri.value = this.normalizer.normalize(res, true);                 
 +            
 +         } else if (overrideVal == null) {             
 +            ri.value = iui.signed_signature_object.retrieveStringValue(ri.sfd.field_name);
 +         }
 +       }
 +     } finally {
 +       OverridePropertyHolder.removeOgnlUtil();
      }
    }
 | 
