I run all form data through Lucee Canonicalize function using a component static function:
public static string function canonical(required string data) {
return canonicalize(data, false, false);
}
- The attached exception is triggered by password ending with percent sign:
Zappar1234%
- I was expecting default
throwOnError=false
argument to prevent all exceptions. - I’m unclear on Canonicalize() required semantics. What should happen here?
OS: Linux 5.10.0-28-amd64 SMP Debian 5.10.209-2 (2024-01-31) x86_64 GNU/Linux
Java Version: OpenJDK 64-Bit Server VM (build 11.0.22+7-post-Debian-1deb11u1, mixed mode, sharing)
Tomcat Version: Tomcat 9.0.43-2~deb11u9
Lucee Version: 6.0.0.585 and 6.0.1.83
Message: URLDecoder: Incomplete trailing escape (%) pattern
StackTrace: lucee.runtime.exp.NativeException: URLDecoder: Incomplete trailing escape (%) pattern
at java.base/java.net.URLDecoder.decode(URLDecoder.java:225)
at java.base/java.net.URLDecoder.decode(URLDecoder.java:142)
at org.lucee.extension.esapi.functions.Canonicalize.call(Canonicalize.java:48)
at org.lucee.extension.esapi.functions.Canonicalize.invoke(Canonicalize.java:70)
at lucee.runtime.functions.FunctionHandlerPool.invoke(FunctionHandlerPool.java:40)
at formutil_cfc$cf$2.udfCall2(/FormUtil.cfc:414) at formutil_cfc$cf$2.udfCall(/FormUtil.cfc)
at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
at lucee.runtime.type.UDFImpl._call(UDFImpl.java:356) at lucee.runtime.type.UDFImpl.call(UDFImpl.java:223)
at lucee.runtime.StaticScope._call(StaticScope.java:342)
at lucee.runtime.StaticScope.call(StaticScope.java:298)
at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:787)
at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1777)
at formutil_cfc$cf$2.udfCall3(/FormUtil.cfc:578)
at formutil_cfc$cf$2.udfCall(/FormUtil.cfc)
at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
at lucee.runtime.type.UDFImpl._call(UDFImpl.java:356)
at lucee.runtime.type.UDFImpl.call(UDFImpl.java:223)
at lucee.runtime.ComponentImpl._call(ComponentImpl.java:701)
at lucee.runtime.ComponentImpl._call(ComponentImpl.java:589)
at lucee.runtime.ComponentImpl.call(ComponentImpl.java:1993)
at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:787)
at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1777)
at webreg.delekhopen24.action.login_cfm$cf$92.call(/webreg/DelekHopeN24/action/login.cfm:15)
at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:1058)
at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:950)
at lucee.runtime.listener.ModernAppListener._onRequest(ModernAppListener.java:221)
at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:44)
at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2494)
at lucee.runtime.PageContextImpl._execute(PageContextImpl.java:2480)
at lucee.runtime.PageContextImpl.executeCFML(PageContextImpl.java:2451)
at lucee.runtime.engine.Request.exe(Request.java:45)
at lucee.runtime.engine.CFMLEngineImpl._service(CFMLEngineImpl.java:1219)
at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:1165)
at lucee.loader.engine.CFMLEngineWrapper.serviceCFML(CFMLEngineWrapper.java:97)
at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:667)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)
at org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:1961)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.IllegalArgumentException: URLDecoder: Incomplete trailing escape (%) pattern ... 59 more
Lucee_Canonicalize_Exception.mhtml (15.1 KB)