Jozef,
my initial version of this bug report contained a detailed description of the problem. Due to the implementation of ServletInitialHandler.handleFirstRequest() servletListeners are invoked before any filter chain:

listeners.requestInitialized(request);
next.handleRequest(exchange);

This is the reason, why it is currently impossible to use your workaround, which is in fact an old and well known solution which we used since about 10 years

To show the problem I again paste the stack traces of one single web request, first breakpoint in FormEncodedDataDefinition.parse(), second in encoding filter.
This shows, that the invocation of Weld as ServletListener causes the request parameters to be parsed first by Weld, before any EncodingFilter may set the reqests encoding.

"default task-3"
io.undertow.server.handlers.form.FormEncodedDataDefinition$FormEncodedDataParser.doParse(FormEncodedDataDefinition.java:118)
io.undertow.server.handlers.form.FormEncodedDataDefinition$FormEncodedDataParser.parseBlocking(FormEncodedDataDefinition.java:226)
io.undertow.servlet.spec.HttpServletRequestImpl.parseFormData(HttpServletRequestImpl.java:704)
io.undertow.servlet.spec.HttpServletRequestImpl.getParameter(HttpServletRequestImpl.java:578)
org.jboss.weld.servlet.ConversationContextActivator.getConversationId(ConversationContextActivator.java:124)
org.jboss.weld.servlet.ConversationContextActivator.activateConversationContext(ConversationContextActivator.java:91)
org.jboss.weld.servlet.HttpContextLifecycle.requestInitialized(HttpContextLifecycle.java:183)
org.jboss.weld.servlet.WeldInitialListener.requestInitialized(WeldInitialListener.java:135)
io.undertow.servlet.core.ApplicationListeners.requestInitialized(ApplicationListeners.java:216)
io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:238)
io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:226)
io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:72)
io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:145)
io.undertow.server.Connectors.executeRootHandler(Connectors.java:139)
io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:637)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
java.lang.Thread.run(Thread.java:724)

"default task-3"
at.telekom.sms.web.filter.EncodingFilter.doFilter(EncodingFilter.java:22)
io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:56)
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)
io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85)
io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:59)
io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:81)
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)
io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:113)
io.undertow.security.handlers.AuthenticationCallHandler.handleRequest(AuthenticationCallHandler.java:52)
io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45)
io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:65)
io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:70)
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)
io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:239)

Thomas

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
_______________________________________________
weld-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/weld-issues

Reply via email to