Thanks for this.

But there are no servlet mappings in this fragment.   So if there are
not servlets, then the default servlet applies and I think the jetty mappings are
correct.

cheers


Mark St Godard wrote:




The web.xml (fragment) for the following Websphere 5.1 output  (see
previous mail) are as follows:

(again pretty standard Acegi config stuff)

.. . .
    <filter>
        <filter-name>Acegi Authentication Processing Filter</filter-name>

<filter-class>net.sf.acegisecurity.util.FilterToBeanProxy</filter-class>
        <init-param>
            <param-name>targetClass</param-name>

<param-value>net.sf.acegisecurity.ui.webapp.AuthenticationProcessingFilter</param-value>
        </init-param>
    </filter>

    <filter>
        <filter-name>Acegi Security System for Spring Auto Integration
Filter</filter-name>

<filter-class>net.sf.acegisecurity.ui.AutoIntegrationFilter</filter-class>
    </filter>

    <filter>
        <filter-name>Acegi HTTP Request Security Filter</filter-name>

<filter-class>net.sf.acegisecurity.util.FilterToBeanProxy</filter-class>
        <init-param>
            <param-name>targetClass</param-name>

<param-value>net.sf.acegisecurity.intercept.web.SecurityEnforcementFilter</param-value>
        </init-param>
    </filter>

    <filter-mapping>
      <filter-name>Acegi Authentication Processing Filter</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>

    <filter-mapping>
      <filter-name>Acegi Security System for Spring Auto Integration
Filter</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>

    <filter-mapping>
      <filter-name>Acegi HTTP Request Security Filter</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>

 . . .




|---------+---------------------------------------------------> | | Greg Wilkins <[EMAIL PROTECTED]> | | | Sent by: | | | [EMAIL PROTECTED]| | | ceforge.net | | | | | | | | | 06/12/2004 02:05 AM | | | Please respond to | | | acegisecurity-developer | |---------+---------------------------------------------------> >----------------------------------------------------------------------------------------------| | | | To: Colin Sampaleanu <[EMAIL PROTECTED]> | | cc: [EMAIL PROTECTED], | | [EMAIL PROTECTED] | | Subject: Re: [Acegisecurity-developer] Re: HttpServletRequest getters | | | | | >----------------------------------------------------------------------------------------------|




Colin,

It is not the filter mappings that controls the servletPath and pathInfo.
Rather it is the mapping of the eventual resource that is mapped to.

If there is no resource that the request is targetted to, then the
request is mapped to the / default servlet.   Then the servletpath
should be the request path and the path info null (which is what
Jetty has produced).

Any chance you can send the web.xml that generated this, so we
can see the exact mapping.

cheers


Colin Sampaleanu wrote:

Greg,

(I'm cc'ing Greg directly also since I am not a jetty mailing list
member, and don't know if this will get to Greg otherwise).

It seems to me that this is not actually so clear-cut. The filter in
question is not mapped to the request via a
<servlet-name>xxxx</servlet-name>
in the <filter-mapping> element, but rather a
<url-pattern>/*</url-pattern>
url mapping. As such, when the filter is executed, as I understand it,
it's not even a servlet filter, it's just a general filter on the

request.

As far as I can make it out, both Jetty _and_ WebSphere are wrong. The
method definition is:

"Servlet Path: The path section that directly corresponds to the mapping
which activated this request. This path starts with a?/? character
except in the
case where the request is matched with the ?/*? pattern, in which case
it is an
empty string."

well the mapping that caused the filter to fire in this case is
definitely '/*', so I think the method should be returning an empty
string. Instead, Jetty (and I think TomCat) return
/j_acegi_security_check
and WebSphere returns
/

How is either of the above correct?

Regards,
Colin


Greg Wilkins wrote:


Ben,

The spec says:

"A string containing only the / character indicates the "default"

servlet

of the application. In this case the servlet path is the request URI
minus
the context path and the path info is null."

"Servlet Path: The path section that directly corresponds to the
mapping which
activated this request. This path starts with a / character except in
the case
where the request is matched with the /* pattern, in which case it is
an empty string. "

"PathInfo: The part of the request path that is not part of the
Context Path or the
Servlet Path. It is either null if there is no extra path, or is a
string with a leading / .

So looking at your results, Jetty is giving you results as if the
mapping was /j_acegi_security_check

I can't think of a legal mapping that would result in the WebSphere
result of
servlet path=/.

If the mapping was /j_acei_securitycheck, then a sp of / is just
wrong.

If the mapping was /* then servletpath must be the empty string and
the path info must start with a /

If the mapping was / then the servletpath should be the whole request

URI

and the path info must be null

So websphere is just plain wrong on this one !

cheers


Ben Alex wrote:


Hi everyone

The Acegi Security System for Spring
(http://acegisecurity.sourceforge.net)
uses HttpServletRequest getters in a filter. I do all the development
of the
project using Jetty, but we've had a report of problems with WebSphere
5.1.1. I'm writing to the Jetty list in the hope of gaining some
clarification as to the correct behaviour of different
HttpServletRequest
getters.

Here are our filter logging directives:

logger.debug("REQ url: " + httpRequest.getRequestURL());
logger.debug("REQ servlet path: " + httpRequest.getServletPath());
logger.debug("REQ context path: " + httpRequest.getContextPath());
logger.debug("REQ path info: " + httpRequest.getPathInfo());
logger.debug("REQ path translated " + httpRequest.getPathTranslated());
logger.debug("REQ request url: " + httpRequest.getRequestURL());

Using Jetty 4.2.17 it returns:

REQ url: http://localhost:8080/contacts/j_acegi_security_check
REQ servlet path: /j_acegi_security_check
REQ context path: /contacts
REQ path info: null
REQ path translated null
REQ request url: http://localhost:8080/contacts/j_acegi_security_check

Using WebSphere 5.1.1 (on a different machine) it returns:

REQ url: http://localhost:9080/Permit/j_acegi_security_check REQ
servlet path: / REQ context path: /Permit REQ path info:
j_acegi_security_check REQ path translated


/home/mark/Repositories/permit/PermitWeb/WebContent/j_acegi_security_check

REQ request url: http://localhost:9080/Permit/j_acegi_security_check

So, is getServletPath() and getPathInfo() correct for Jetty or
WebSphere?
We're trying to detect the getServletPath() output as per Jetty (ie
/j_acegi_security_check) so we know our filter should do something.

Any advice appreciated.

Ben




--
Greg Wilkins<[EMAIL PROTECTED]>             Phone/fax: +44 7092063462
Mort Bay Consulting Australia and UK.          http://www.mortbay.com


------------------------------------------------------- This SF.Net email is sponsored by the new InstallShield X. From Windows to Linux, servers to mobile, InstallShield X is the one installation-authoring solution that does it all. Learn more and evaluate today! http://www.installshield.com/Dev2Dev/0504 _______________________________________________ Acegisecurity-developer mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/acegisecurity-developer




------------------------------------------------------- This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference Learn from the experts at JavaOne(SM), Sun's Worldwide Java Developer Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND _______________________________________________ Jetty-support mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jetty-support




------------------------------------------------------- This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference Learn from the experts at JavaOne(SM), Sun's Worldwide Java Developer Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND _______________________________________________ Acegisecurity-developer mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/acegisecurity-developer

Reply via email to