diff options
Diffstat (limited to 'pdf-as-web/src')
| -rw-r--r-- | pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java | 65 | 
1 files changed, 43 insertions, 22 deletions
| diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java index 7b49c644..53085ca2 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java @@ -187,9 +187,13 @@ public class PdfAsHelper {  			try {  				Float.parseFloat(posX);  			} catch (NumberFormatException e) { -				throw new PdfAsWebException( -						PdfAsParameterExtractor.PARAM_SIG_POS_X -								+ " has invalid value!", e); +				if (!posX.equalsIgnoreCase("auto")) { +					throw new PdfAsWebException( +							PdfAsParameterExtractor.PARAM_SIG_POS_X +									+ " has invalid value!", e); +				} else { +					sb.append("x:auto;"); +				}  			}  			sb.append("x:" + posX.trim() + ";");  		} else { @@ -200,9 +204,13 @@ public class PdfAsHelper {  			try {  				Float.parseFloat(posY);  			} catch (NumberFormatException e) { -				throw new PdfAsWebException( -						PdfAsParameterExtractor.PARAM_SIG_POS_Y -								+ " has invalid value!", e); +				if (!posY.equalsIgnoreCase("auto")) { +					throw new PdfAsWebException( +							PdfAsParameterExtractor.PARAM_SIG_POS_Y +									+ " has invalid value!", e); +				} else { +					sb.append("y:auto;"); +				}  			}  			sb.append("y:" + posY.trim() + ";");  		} else { @@ -213,9 +221,13 @@ public class PdfAsHelper {  			try {  				Float.parseFloat(posW);  			} catch (NumberFormatException e) { +				if (!posW.equalsIgnoreCase("auto")) {  				throw new PdfAsWebException(  						PdfAsParameterExtractor.PARAM_SIG_POS_W  								+ " has invalid value!", e); +				} else { +					sb.append("w:auto;"); +				}  			}  			sb.append("w:" + posW.trim() + ";");  		} else { @@ -241,9 +253,11 @@ public class PdfAsHelper {  			try {  				Float.parseFloat(posR);  			} catch (NumberFormatException e) { -				throw new PdfAsWebException( +				if (!posR.equalsIgnoreCase("auto")) { +					throw new PdfAsWebException(  						PdfAsParameterExtractor.PARAM_SIG_POS_R  								+ " has invalid value!", e); +				}  			}  			sb.append("r:" + posR.trim() + ";");  		} else { @@ -254,9 +268,13 @@ public class PdfAsHelper {  			try {  				Float.parseFloat(posF);  			} catch (NumberFormatException e) { -				throw new PdfAsWebException( +				if (!posF.equalsIgnoreCase("auto")) { +					throw new PdfAsWebException(  						PdfAsParameterExtractor.PARAM_SIG_POS_F  								+ " has invalid value!", e); +				} else { +					sb.append("f:0;"); +				}  			}  			sb.append("f:" + posF.trim() + ";");  		} else { @@ -299,7 +317,8 @@ public class PdfAsHelper {  	}  	public static List<VerifyResult> synchornousVerify(byte[] pdfData, -			int signIdx, SignatureVerificationLevel lvl, Map<String, String> preProcessor) throws Exception { +			int signIdx, SignatureVerificationLevel lvl, +			Map<String, String> preProcessor) throws Exception {  		logger.debug("Verifing Signature index: " + signIdx);  		Configuration config = pdfAs.getConfiguration(); @@ -339,7 +358,7 @@ public class PdfAsHelper {  		Configuration config = pdfAs.getConfiguration();  		ByteArrayOutputStream baos = new ByteArrayOutputStream(); -		 +  		// Generate Sign Parameter  		SignParameter signParameter = PdfAsFactory.createSignParameter(config,  				new ByteArrayDataSource(pdfData), baos); @@ -396,7 +415,7 @@ public class PdfAsHelper {  		Configuration config = pdfAs.getConfiguration();  		ByteArrayOutputStream baos = new ByteArrayOutputStream(); -		 +  		// Generate Sign Parameter  		SignParameter signParameter = PdfAsFactory.createSignParameter(config,  				new ByteArrayDataSource(pdfData), baos); @@ -431,11 +450,12 @@ public class PdfAsHelper {  		// set Signature Position  		signParameter.setSignaturePosition(params.getPosition()); -		// Set Preprocessor  -		if(params.getPreprocessor() != null) { -			signParameter.setPreprocessorArguments(params.getPreprocessor().getMap()); +		// Set Preprocessor +		if (params.getPreprocessor() != null) { +			signParameter.setPreprocessorArguments(params.getPreprocessor() +					.getMap());  		} -		 +  		SignResult signResult = pdfAs.sign(signParameter);  		PDFASSignResponse signResponse = new PDFASSignResponse(); @@ -454,7 +474,8 @@ public class PdfAsHelper {  	public static void startSignature(HttpServletRequest request,  			HttpServletResponse response, ServletContext context,  			byte[] pdfData, String connector, String position, -			String transactionId, String profile, Map<String, String> preProcessor) throws Exception { +			String transactionId, String profile, +			Map<String, String> preProcessor) throws Exception {  		// TODO: Protect session so that only one PDF can be signed during one  		// session @@ -476,7 +497,7 @@ public class PdfAsHelper {  		ByteArrayOutputStream baos = new ByteArrayOutputStream();  		session.setAttribute(PDF_OUTPUT, baos); -		 +  		// Generate Sign Parameter  		SignParameter signParameter = PdfAsFactory.createSignParameter(config,  				new ByteArrayDataSource(pdfData), baos); @@ -537,8 +558,8 @@ public class PdfAsHelper {  		X509Certificate cert = new X509Certificate(  				PdfAsHelper.class.getResourceAsStream("/qualified.cer"));  		Configuration config = pdfAs.getConfiguration(); -		SignParameter parameter = PdfAsFactory -				.createSignParameter(config, null, null); +		SignParameter parameter = PdfAsFactory.createSignParameter(config, +				null, null);  		parameter.setSignatureProfileId(profile);  		Image img = pdfAs.generateVisibleSignaturePreview(parameter, cert,  				resolution); @@ -620,7 +641,7 @@ public class PdfAsHelper {  				|| connector.equals("mobilebku")) {  			BKUSLConnector bkuSLConnector = (BKUSLConnector) session  					.getAttribute(PDF_SL_CONNECTOR); -			 +  			if (statusRequest.needCertificate()) {  				logger.debug("Needing Certificate from BKU");  				// build SL Request to read certificate @@ -683,11 +704,11 @@ public class PdfAsHelper {  				logger.debug("Document ready!");  				SignResult result = pdfAs.finishSign(statusRequest); -				 +  				ByteArrayOutputStream baos = (ByteArrayOutputStream) session  						.getAttribute(PDF_OUTPUT);  				baos.close(); -				 +  				PDFASVerificationResponse verResponse = new PDFASVerificationResponse();  				List<VerifyResult> verResults = PdfAsHelper.synchornousVerify(  						baos.toByteArray(), -2, | 
