diff options
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/java/at/gv/egiz/pdfas/impl/api/PdfAsObject.java | 130 | 
1 files changed, 60 insertions, 70 deletions
| 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 e630aa3..2c9a9ad 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 @@ -624,58 +624,53 @@ public class PdfAsObject implements PdfAs      * @see PdfAs#prepareSign(SignParameters)
      */
     public SignatureDetailInformation prepareSign(SignParameters signParameters) throws PdfAsException {
 -      try{
 -         CheckHelper.checkSignParameters(signParameters, true);
 -         
 -         if (signParameters.getProfileOverrideProperties() != null) {
 -            OverridePropertyHolder.setOverrideProps(signParameters.getProfileOverrideProperties());
 -         }
 -   
 -         signParameters.setDocument(PdfAS.applyStrictMode(signParameters.getDocument()));
 -         
 -         SignaturePlaceholderData spd = null;
 -         SignaturePlaceholderContext.setSignaturePlaceholderData(null);
 -         if (signParameters.isCheckForPlaceholder()) {
 -            spd = SignaturePlaceholderExtractor.extract(signParameters.getDocument().createInputStream(), signParameters.getPlaceholderId(), signParameters.getPlaceholderMatchMode());
 -            if (spd != null){
 -               if (spd.getProfile() != null)
 -                  signParameters.setSignatureProfileId(spd.getProfile());
 -               if (spd.getType() != null)
 -                  signParameters.setSignatureType(spd.getType());
 -               if (spd.getKey() != null)
 -                  signParameters.setSignatureKeyIdentifier(spd.getKey());
 -            }
 -         }
 -         CheckHelper.checkSignParameters(signParameters, true);
 -         
 -         if (signParameters.getSignatureProfileId() == null)
 -         {
 -           SettingsReader settings = SettingsReader.getInstance();
 -           String defaultProfile = settings.getValueFromKey(SignatureTypes.DEFAULT_TYPE);
 -           signParameters.setSignatureProfileId(defaultProfile);
 +      CheckHelper.checkSignParameters(signParameters, true);
 +      
 +      if (signParameters.getProfileOverrideProperties() != null) {
 +         OverridePropertyHolder.setOverrideProps(signParameters.getProfileOverrideProperties());
 +      }
 +
 +      signParameters.setDocument(PdfAS.applyStrictMode(signParameters.getDocument()));
 +      
 +      SignaturePlaceholderData spd = null;
 +      SignaturePlaceholderContext.setSignaturePlaceholderData(null);
 +      if (signParameters.isCheckForPlaceholder()) {
 +         spd = SignaturePlaceholderExtractor.extract(signParameters.getDocument().createInputStream(), signParameters.getPlaceholderId(), signParameters.getPlaceholderMatchMode());
 +         if (spd != null){
 +            if (spd.getProfile() != null)
 +               signParameters.setSignatureProfileId(spd.getProfile());
 +            if (spd.getType() != null)
 +               signParameters.setSignatureType(spd.getType());
 +            if (spd.getKey() != null)
 +               signParameters.setSignatureKeyIdentifier(spd.getKey());
           }
 -   
 -         TablePos pos = null;
 -         if (spd != null && spd.getTablePos() != null)
 -            pos = spd.getTablePos();
 -         else
 -            pos = PosHelper.formTablePos(signParameters.getSignaturePositioning());
 -         
 -         Signator signator = createSignator(signParameters.getSignatureType());
 -   
 -         SignatorInformation signatorInfo = signator.prepareSign(
 -               new PdfDataSourceAdapter(signParameters.getDocument()), 
 -               signParameters.getSignatureProfileId(), 
 -               pos, 
 -               signParameters.getTimeStamperImpl());
 -         
 -         SignatureDetailInformationImpl ret = new SignatureDetailInformationImpl();
 -         ret.setSignatorInformation(signatorInfo);
 -         return ret;
 -      } finally {
 -         OverridePropertyHolder.removeProperties();
 -         DynamicSignatureProfileImpl.disposeLocalProfile();
        }
 +      CheckHelper.checkSignParameters(signParameters, true);
 +      
 +      if (signParameters.getSignatureProfileId() == null)
 +      {
 +        SettingsReader settings = SettingsReader.getInstance();
 +        String defaultProfile = settings.getValueFromKey(SignatureTypes.DEFAULT_TYPE);
 +        signParameters.setSignatureProfileId(defaultProfile);
 +      }
 +
 +      TablePos pos = null;
 +      if (spd != null && spd.getTablePos() != null)
 +         pos = spd.getTablePos();
 +      else
 +         pos = PosHelper.formTablePos(signParameters.getSignaturePositioning());
 +      
 +      Signator signator = createSignator(signParameters.getSignatureType());
 +
 +      SignatorInformation signatorInfo = signator.prepareSign(
 +            new PdfDataSourceAdapter(signParameters.getDocument()), 
 +            signParameters.getSignatureProfileId(), 
 +            pos, 
 +            signParameters.getTimeStamperImpl());
 +      
 +      SignatureDetailInformationImpl ret = new SignatureDetailInformationImpl();
 +      ret.setSignatorInformation(signatorInfo);
 +      return ret;
     }
 @@ -700,29 +695,24 @@ public class PdfAsObject implements PdfAs     public SignResult sign(SignParameters signParameters, SignatureDetailInformation signatorInfo)
           throws PdfAsException {
 -      try {
 -         CheckHelper.checkSignParametersForSignAfterPrepare(signParameters, false);
 -         
 -         if (signParameters.getProfileOverrideProperties() != null) {
 -            OverridePropertyHolder.setOverrideProps(signParameters.getProfileOverrideProperties());
 -         }
 +      CheckHelper.checkSignParametersForSignAfterPrepare(signParameters, false);
 +      
 +      if (signParameters.getProfileOverrideProperties() != null) {
 +         OverridePropertyHolder.setOverrideProps(signParameters.getProfileOverrideProperties());
 +      }
 -         String connectorId = CommandlineConnectorChooser.chooseCommandlineConnectorForSign(signParameters.getSignatureDevice());
 +      String connectorId = CommandlineConnectorChooser.chooseCommandlineConnectorForSign(signParameters.getSignatureDevice());
 -         ConnectorParameters cp = new ConnectorParameters();
 -         cp.setProfileId(signParameters.getSignatureProfileId());
 -         cp.setSignatureKeyIdentifier(signParameters.getSignatureKeyIdentifier());
 -         Connector c = at.gv.egiz.pdfas.framework.ConnectorFactory.createConnector(connectorId, cp);
 +      ConnectorParameters cp = new ConnectorParameters();
 +      cp.setProfileId(signParameters.getSignatureProfileId());
 +      cp.setSignatureKeyIdentifier(signParameters.getSignatureKeyIdentifier());
 +      Connector c = at.gv.egiz.pdfas.framework.ConnectorFactory.createConnector(connectorId, cp);
 -         SignatureData sd = new SignatureDataImpl(new PdfDataSourceAdapter(signatorInfo.getSignatureData()), signatorInfo.getSignatureData().getMimeType());
 -         SignSignatureObject sso = PdfAS.sign(sd, c, signParameters.getTimeStamperImpl());
 -         ((SignatureDetailInformationImpl)signatorInfo).setSignSignatureObject(sso);
 -         
 -         return finishSign(signParameters, signatorInfo);
 -      } finally {
 -         OverridePropertyHolder.removeProperties();
 -         DynamicSignatureProfileImpl.disposeLocalProfile();
 -      }
 +      SignatureData sd = new SignatureDataImpl(new PdfDataSourceAdapter(signatorInfo.getSignatureData()), signatorInfo.getSignatureData().getMimeType());
 +      SignSignatureObject sso = PdfAS.sign(sd, c, signParameters.getTimeStamperImpl());
 +      ((SignatureDetailInformationImpl)signatorInfo).setSignSignatureObject(sso);
 +      
 +      return finishSign(signParameters, signatorInfo);
     }
     public SignResult finishSign(SignParameters signParameters, SignatureDetailInformation signatureDetailInformation) 
 | 
