An issue after upgrading my Docker iamges to the lastet version

Hi,
I have an issue after upgrading my Docker images to the lastet version.

Instead of getting redirected to flowable-idm, I get the following error:
The request was rejected because the URL was not normalized.

And the following stacktrace:
org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL was not normalized.

Any idea what might solve this issue?

Hi.

Could you provide some more info on how you start the container(s)?

Regards,

Yvo

Hi,

I’ve built a docker-compose file and I simply use “docker-compose up” to start all containers at once.

Everything worked fine with the previous version.

Hi,

but do you define any configuration in the docker compose file?
Like in this example; https://github.com/flowable/flowable-engine/blob/master/docker/config/modeler-task-idm-admin-postgres.yml

The configuration should be backwards compatible. But it’s good to check it.

Regards,

Yvo

Hi,
Yeah.

Here’s an example of my flowable-task service:

flowable-task:
image: flowable/flowable-task
container_name: flowable-task
depends_on:
- flowable-db
- flowable-idm
ports:
- 9999:9999
env_file:
- ./common.env
entrypoint: ["./wait-for-something.sh", “flowable-db”, “5432”, “PostgreSQL”, “java”, “-jar”, “flowable-task.war”]

And this is the stacktrace:

flowable-task | 134 [http-nio-9999-exec-2] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/flowable-task].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/flowable-task] threw exception
flowable-task | org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL was not normalized.
flowable-task | at org.springframework.security.web.firewall.StrictHttpFirewall.getFirewalledRequest(StrictHttpFirewall.java:248)
flowable-task | at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:194)
flowable-task | at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
flowable-task | at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)
flowable-task | at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)
flowable-task | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
flowable-task | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
flowable-task | at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
flowable-task | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
flowable-task | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
flowable-task | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
flowable-task | at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)
flowable-task | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
flowable-task | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
flowable-task | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
flowable-task | at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
flowable-task | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
flowable-task | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
flowable-task | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
flowable-task | at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
flowable-task | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
flowable-task | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
flowable-task | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
flowable-task | at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
flowable-task | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
flowable-task | at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
flowable-task | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
flowable-task | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
flowable-task | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
flowable-task | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
flowable-task | at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
flowable-task | at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
flowable-task | at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
flowable-task | at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
flowable-task | at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
flowable-task | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
flowable-task | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
flowable-task | at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
flowable-task | at java.lang.Thread.run(Thread.java:745)

Hi,

please compare your config to the one I referred too.
Next to the configuration properties; probably in the common.env file in your case; the artifact name has changed. You refer to flowable-task.war. This changed to app.war for all images.
If you explicitly override the entrypoint you have to change that.

Like I mentioned before the property names should be backwards compatible. But they are deprecated. So it’s advised to update them.

Regards,

Yvo

Hi,

I guess my environment variables are outdated in some way.

I’ve tried running the modeler-task-idm-admin-postgres.yml file from github.

At the first run I got an error that app.war cannot be found.
After checking within the container, I’ve noticed that the file name is, for example, flowable-task.war and not app.war.
As far as I remember, it used to be flowable-admin.jar in the previous version and it was changed from a jar file to a war file.

Once I’ve changed all the entrypoints in the docker-compose file I got from github, (for ex. app.war to 'flowable-[app-name].war), everything seems to be working fine.

Gonna check my broken yml file again since I’m pretty sure it’s environment variables related…

Got everything working now with my yml file. Thanks.