On 04/12/2019 05:16, Kushagra Bindal wrote: > Hi Mark/Manna/Chris, > > Do we have any way out to handle this type of behavior?
All the evidence so far points to an application issue, not a Tomcat issue. If you are able to create a simple test case that demonstrates a Tomcat issue we can take a look. Mark > > On Tue, Dec 3, 2019 at 5:46 AM Kushagra Bindal <bindal.kusha...@gmail.com> > wrote: > >> Chris, >> >> If you will check in my early email then you will find that with // it is >> throwing 404. But as soon as I removed it manually then it starts working >> properly and all these url were working fine in 8.5.24 version. >> >> On Tue, Dec 3, 2019, 1:21 AM Christopher Schultz < >> ch...@christopherschultz.net> wrote: >> > Kushagra, > > On 12/2/19 11:29, Kushagra Bindal wrote: >>>>> I think it should be. >>>>> >>>>> <filter> >>>>> <description>DanglingSessionInvalidateFilter</description> >>>>> <filter-name>DanglingSessionInvalidateFilter</filter-name> >>>>> <filter-class>com.SessionInvalidateFilter</filter-class> </filter> >>>>> <filter-mapping> >>>>> <filter-name>DanglingSessionInvalidateFilter</filter-name> >>>>> <url-pattern>/restcall/*</url-pattern> </filter-mapping> >>>>> >>>>> Here in below URL: >>>>> >>>>> "http://backend_tomcat:8080/sdm/restcall/v1/platform//healthCheck" >>>>> >>>>> sdm will be the context path. >>>>> >>>>> But in another example that I shared in my last email, one use >>>>> case http://backend_tomcat:8080//sdm/restcall)(.*)/file_uploads my >>>>> context path itself contains //. >>>>> >>>>> So, please suggest a viable solution which we can try to solve >>>>> this problem. :) >>>>> >>>>> Thanks in advance for your help & support in resolving this issue. > > All of these slashes really should be collapsed into a single slash > before processing. I don't see an issue. If the client requests: > > http://backend_tomcat:8080/sdm/restcall/v1/platform//healthCheck > > then the filter/servlet at /sdm/restcall/* will respond. > > If the client requests: > > http://backend_tomcat:8080//sdm/restcall/foo/file_uploads > > Then the filter/servlet at /sdm/restcall/* will respond. > > It doesn't really matter how many extra slashes the client adds... > they should all be collapsed by the server and your application should > not have to make arrangements to handle them, add them back, or worry > about whether they are there or not. > > -chris > >>>>> On Mon, Dec 2, 2019 at 9:00 PM Mark Thomas <ma...@apache.org> >>>>> wrote: >>>>> >>>>>> On 02/12/2019 10:59, Kushagra Bindal wrote: >>>>>>> Hi Mark, >>>>>>> >>>>>>> These are Rest Endpoints, and so will be processed through >>>>>>> Filter. >>>>>> >>>>>> That is unusual. >>>>>> >>>>>>> Do, you think Servlet mapping will play any role here? >>>>>> >>>>>> If the filter is handling them, no. >>>>>> >>>>>> So I'll change the question. Which URL pattern from the filter >>>>>> mapping do you expect: >>>>>> >>>>>> "http://backend_tomcat:8080/sdm/restcall/v1/platform//healthCheck" >>>>>> >>>>>> >>>>>> > to match? >>>>>> >>>>>> The Context Path question still needs an answer. >>>>>> >>>>>> Mark >>>>>> >>>>>> >>>>>>> >>>>>>> On Mon, Dec 2, 2019 at 2:33 PM Mark Thomas <ma...@apache.org> >>>>>>> wrote: >>>>>>> >>>>>>>> On 02/12/2019 04:53, Kushagra Bindal wrote: >>>>>>>>> Hi Mark, >>>>>>>>> >>>>>>>>> Please find the snippet from web.xml >>>>>>>> >>>>>>>> Which URL pattern do you expect: >>>>>>>> >>>>>>>> "http://backend_tomcat:8080/sdm/restcall/v1/platform//healthCheck" >>>>>>>> >>>>>>>> >>>>>>>> > to match? >>>>>>>> >>>>>>>> And what is the Context Path at which the application is >>>>>>>> deployed? >>>>>>>> >>>>>>>> Mark >>>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>> <servlet> <servlet-name>default</servlet-name> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-c > lass> >>>>>>>>> >>>>>> > <init-param> >>>>>>>>> <param-name>debug</param-name> >>>>>>>>> <param-value>0</param-value> </init-param> <init-param> >>>>>>>>> <param-name>listings</param-name> >>>>>>>>> <param-value>false</param-value> </init-param> >>>>>>>>> <load-on-startup>1</load-on-startup> </servlet> <servlet> >>>>>>>>> <servlet-name>jsp</servlet-name> >>>>>>>>> >>>>>>>> <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> >>>>>>>>> >>>>>>>> > <init-param> >>>>>>>>> <param-name>fork</param-name> >>>>>>>>> <param-value>false</param-value> </init-param> >>>>>>>>> <init-param> <param-name>xpoweredBy</param-name> >>>>>>>>> <param-value>false</param-value> </init-param> >>>>>>>>> <load-on-startup>3</load-on-startup> </servlet> <!-- The >>>>>>>>> mapping for the default servlet --> <servlet-mapping> >>>>>>>>> <servlet-name>default</servlet-name> >>>>>>>>> <url-pattern>/</url-pattern> </servlet-mapping> <!-- The >>>>>>>>> mappings for the JSP servlet --> <servlet-mapping> >>>>>>>>> <servlet-name>jsp</servlet-name> >>>>>>>>> <url-pattern>*.jsp</url-pattern> >>>>>>>>> <url-pattern>*.jspx</url-pattern> </servlet-mapping> >>>>>>>>> <servlet> >>>>>>>>> <servlet-name>PatternTemplateLaunchServlet</servlet-name> >>>>>>>>> <servlet-class>PatternTemplateLaunchServlet</servlet-class> >>>>>>>>> >>>>>>>>> > </servlet> >>>>>>>>> <servlet> >>>>>>>>> <servlet-name>MyReportsLaunchServlet</servlet-name> >>>>>>>>> <servlet-class>MyReportsLaunchServlet</servlet-class> >>>>>>>>> </servlet> <servlet-mapping> >>>>>>>>> <servlet-name>PatternTemplateLaunchServlet</servlet-name> >>>>>>>>> <url-pattern>/patterntemplatelaunch</url-pattern> >>>>>>>>> </servlet-mapping> <servlet-mapping> >>>>>>>>> <servlet-name>MyReportsLaunchServlet</servlet-name> >>>>>>>>> <url-pattern>/MyReportsLaunchServlet</url-pattern> >>>>>>>>> </servlet-mapping> >>>>>>>>> >>>>>>>>> Please let me know if you need anyother details from our >>>>>>>>> side. >>>>>>>>> >>>>>>>>> On Mon, Dec 2, 2019 at 3:07 AM Mark Thomas >>>>>>>>> <ma...@apache.org> wrote: >>>>>>>>> >>>>>>>>>> On 01/12/2019 07:11, Kushagra Bindal wrote: >>>>>>>>>>> Hi Manna/Mark, >>>>>>>>>>> >>>>>>>>>>> Below are the sample URL which we are passing to >>>>>>>>>>> Tomcat. >>>>>>>>>>> >>>>>>>>>>> http://backend_tomcat:8080//sdm/restcall)(.*)/file_uploads >>>>>>>>>>> >>>>>>>>>>> > http://backend_tomcat:8080/sdm/restcall/v1/platform//healthCheck >>>>>>>>>>> >>>>>>>>>>> As from the above example you can see that // location >>>>>>>>>>> may vary case >>>>>> by >>>>>>>>>>> case. >>>>>>>>>>> >>>>>>>>>>> So, you guys have a probable solution to handle such >>>>>>>>>>> situation, then >>>>>>>>>> please >>>>>>>>>>> do let me know. >>>>>>>>>> >>>>>>>>>> Tomcat is simply going to normalize those to single '/'. >>>>>>>>>> The >>>>>> application >>>>>>>>>> should be fine with that. >>>>>>>>>> >>>>>>>>>> To repeat my previous request: Can you provide more >>>>>>>>>> details such as: - an example request URI *and* - the >>>>>>>>>> <url-pattern> for the servlet you expect it to match to >>>>>>>>>> >>>>>>>>>> Mark >>>>>>>>>> >>>>>>>>>> ----------------------------------------------------------------- > ---- >>>>>>>>>> >>>>>>>>>> > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >>>>>>>>>> For additional commands, e-mail: >>>>>>>>>> users-h...@tomcat.apache.org >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> ------------------------------------------------------------------- >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >>> For additional commands, e-mail: users-h...@tomcat.apache.org >>> >>> > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org