You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Carsten Ziegeler (Updated) (JIRA)" <ji...@apache.org> on 2012/02/09 16:06:00 UTC

[jira] [Updated] (SLING-2410) Problems with paths ending with .jsp in WebSphere

     [ https://issues.apache.org/jira/browse/SLING-2410?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Carsten Ziegeler updated SLING-2410:
------------------------------------

    Description: 
Found a potential problem with paths ending with *.jsp and WebSphere. The Sling web.xml contains the following mapping:

    <!-- Overwrite Mappings which may be present in default web.xml files -->
    <servlet-mapping>
        <servlet-name>sling</servlet-name>
        <url-pattern>*.jsp</url-pattern>
    </servlet-mapping>

With the idea to not have any default web.xml grabbing .jsp requests.

The problem is that servlet path and path info values for requests matching the
*.jsp pattern are defined differently than if the mapping would be /.

Thus a request /path/index.jsp mapping *.jsp gets:
    servlet path = /path/index.jsp
    path info = null

Thus (1) the Http Service bridge implementation assumes the serlvet registered
at root (because path info is looked at) thus causing the Sling Main Servlet to
be called. (2) The Sling JCR Resource Resolver assumes the root path because
path info is null and thus resolves to root and starts the root path redirect
which causes /index.html to be appended to the request URL.

It looks like WebSphere is the only known Servlet Container to interpret the
*.jsp mapping before the / mapping. Tomcat, JBoss, and WebLogic seem to not do
that.



  was:
Found a potential problem with pathes ending with *.jsp and WebSphere. The Sling web.xml contains the following mapping:

    <!-- Overwrite Mappings which may be present in default web.xml files -->
    <servlet-mapping>
        <servlet-name>sling</servlet-name>
        <url-pattern>*.jsp</url-pattern>
    </servlet-mapping>

With the idea to not have any default web.xml grabbing .jsp requests.

The problem is that servlet path and path info values for requests matching the
*.jsp pattern are defined differently than if the mapping would be /.

Thus a request /path/index.jsp mapping *.jsp gets:
    servlet path = /path/index.jsp
    path info = null

Thus (1) the Http Service bridge implementation assumes the serlvet registered
at root (because path info is looked at) thus causing the Sling Main Servlet to
be called. (2) The Sling JCR Resource Resolver assumes the root path because
path info is null and thus resolves to root and starts the root path redirect
which causes /index.html to be appended to the request URL.

It looks like WebSphere is the only known Servlet Container to interpret the
*.jsp mapping before the / mapping. Tomcat, JBoss, and WebLogic seem to not do
that.



        Summary: Problems with paths ending with .jsp in WebSphere  (was: Problems with pathes ending with .jsp in WebSphere)
    
> Problems with paths ending with .jsp in WebSphere
> -------------------------------------------------
>
>                 Key: SLING-2410
>                 URL: https://issues.apache.org/jira/browse/SLING-2410
>             Project: Sling
>          Issue Type: Bug
>          Components: Launchpad
>    Affects Versions: Launchpad Base 2.3.0
>            Reporter: Carsten Ziegeler
>            Assignee: Carsten Ziegeler
>             Fix For: Launchpad Base 2.4.0
>
>
> Found a potential problem with paths ending with *.jsp and WebSphere. The Sling web.xml contains the following mapping:
>     <!-- Overwrite Mappings which may be present in default web.xml files -->
>     <servlet-mapping>
>         <servlet-name>sling</servlet-name>
>         <url-pattern>*.jsp</url-pattern>
>     </servlet-mapping>
> With the idea to not have any default web.xml grabbing .jsp requests.
> The problem is that servlet path and path info values for requests matching the
> *.jsp pattern are defined differently than if the mapping would be /.
> Thus a request /path/index.jsp mapping *.jsp gets:
>     servlet path = /path/index.jsp
>     path info = null
> Thus (1) the Http Service bridge implementation assumes the serlvet registered
> at root (because path info is looked at) thus causing the Sling Main Servlet to
> be called. (2) The Sling JCR Resource Resolver assumes the root path because
> path info is null and thus resolves to root and starts the root path redirect
> which causes /index.html to be appended to the request URL.
> It looks like WebSphere is the only known Servlet Container to interpret the
> *.jsp mapping before the / mapping. Tomcat, JBoss, and WebLogic seem to not do
> that.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira