From 8ed8e4e931c1cb3d3c814a53a07f73b566c3b719 Mon Sep 17 00:00:00 2001 From: Alexander Marsalek Date: Fri, 2 Jul 2021 14:06:44 +0200 Subject: v4.2.0 --- .../impl/stamping/RequestParameterResolver.java | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/RequestParameterResolver.java (limited to 'pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/RequestParameterResolver.java') diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/RequestParameterResolver.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/RequestParameterResolver.java new file mode 100644 index 00000000..a4e88682 --- /dev/null +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/RequestParameterResolver.java @@ -0,0 +1,38 @@ +package at.gv.egiz.pdfas.lib.impl.stamping; + +import java.lang.reflect.Member; +import java.lang.reflect.Modifier; +import java.util.Map; + +import at.gv.egiz.pdfas.common.settings.IProfileConstants; +import at.gv.egiz.pdfas.common.settings.SignatureProfileSettings; +import at.gv.egiz.pdfas.common.utils.OgnlUtils; +import ognl.AbstractMemberAccess; +import ognl.MemberAccess; +import ognl.OgnlContext; + + +public class RequestParameterResolver implements IResolver { + + private OgnlContext ctx; + + public RequestParameterResolver(Map requestParameters) { + + MemberAccess memberAccess = new AbstractMemberAccess() { + @Override + public boolean isAccessible(Map context, Object target, Member member, String propertyName) { + int modifiers = member.getModifiers(); + return Modifier.isPublic(modifiers); + } + }; + + this.ctx = new OgnlContext(null, null, memberAccess); + this.ctx.put(IProfileConstants.SIGNATURE_BLOCK_PARAMETER, requestParameters); + } + + @Override + public String resolve(String key, String value, SignatureProfileSettings settings) { + return OgnlUtils.resolvsOgnlExpression(value, this.ctx); + } + +} -- cgit v1.2.3