diff options
Diffstat (limited to 'pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/ValueResolver.java')
-rw-r--r-- | pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/ValueResolver.java | 34 |
1 files changed, 24 insertions, 10 deletions
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/ValueResolver.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/ValueResolver.java index c6cddc9e..e5905c22 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/ValueResolver.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/ValueResolver.java @@ -35,7 +35,6 @@ import org.slf4j.LoggerFactory; import java.nio.charset.Charset; import java.text.SimpleDateFormat; import java.util.Calendar; -import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.TimeZone; @@ -61,19 +60,27 @@ public class ValueResolver implements IProfileConstants, IResolver { private static final Charset UTF_8 = Charset.forName("UTF-8"); - private IResolver internalResolver; - + private IResolver internalCertificateResolver; + private IResolver internalRequestParameterResolver; public ValueResolver(ICertificateProvider certProvider, OperationStatus operationStatus) { - internalResolver = new CertificateResolver( + internalCertificateResolver = new CertificateResolver( certProvider.getCertificate(), operationStatus); + Map<String, String> test = new HashMap<>(); + test.put("schoolNameRand", RandomStringUtils.randomAlphabetic(5)); + test.put("schoolName", "EGIZ testschule"); + + test.put("subject","bbbbb"); + internalRequestParameterResolver = new RequestParameterResolver(test); } public ValueResolver(OperationStatus operationStatus) { Map<String, String> test = new HashMap<>(); test.put("schoolNameRand", RandomStringUtils.randomAlphabetic(5)); - test.put("schoolName", "EGIZ testschule"); - internalResolver = new RequestParameterResolver(test); - + test.put("schoolName", "EGIZ testschule"); + + test.put("subject","bbbbb"); + internalRequestParameterResolver = new RequestParameterResolver(test); + } public String resolve(String key, String value, @@ -115,10 +122,17 @@ public class ValueResolver implements IProfileConstants, IResolver { do { int idx = matcher.start(0); int idxe = matcher.end(0); - result += value.substring(curidx, idx); + String tmp1 = value.substring(curidx, idx); + result += tmp1; curidx = idxe; - result += internalResolver.resolve(key, - matcher.group(1), settings); + String tmpValue = matcher.group(1); + if(!tmpValue.contains("dynamic")) { + String tmp = internalCertificateResolver.resolve(key, tmpValue, settings); + result += tmp; + }else { + String tmp2 = internalRequestParameterResolver.resolve(key, tmpValue, settings); + result += tmp2; + } } while (matcher.find()); } else { result = value; |