Gert, Thanks for your reply. I added the <dispatcher> elements as described in http://wiki.apache.org/myfaces/JSF_and_Acegi to make sure that <jsp:forward> requests are captured by the Acegi Filter. Because they are not recognized by the WebXmlParser, forward requests can bypass the Acegi Security check. No, I haven't tried it in a simple sample application.
Erik -----Oorspronkelijk bericht----- Van: Gert Vanthienen [mailto:[EMAIL PROTECTED] Verzonden: woensdag 20 september 2006 14:39 Aan: MyFaces Discussion Onderwerp: Re: MyFaces, Tomcat and Acegi Integration Problem Erik, I have taken a quick look at the source code of WebXmlParser. It currently doesn't have any awareness of the <web-app version="2.4".../>-style web.xml, causing it to ignore the 'dispatcher' element (which did not exist prior to version 2.4 of the servlet spec), hence the warning. However, this is a merely a warning and it doesn't change the behavior of MyFaces, as far as I can see. I'm almost certain it doesn't modify the way Tomcat handles this filter-mapping. Have you tried using this filter configuration in a simple (only for testing purposes) web application with no JSF, only plain JSPs and Servlets? Does it work correctly in these simplified circumstances? Regards, Gert Vanthienen [EMAIL PROTECTED] GOVAERS Erik wrote: > Hello, > > I'm using MyFaces with the Spring Framework and Acegi for building a secured > web application. Here's my configuration: > Tomcat 5.0.28 > MyFaces 1.1.3 > > Tomahawk 1.1.3 > Servlets 2.4 (correct header in web.xml, see attachment) > To make sure that a jsp forward request is intercepted by Acegi, I added the > <dispatcher> elements to the Acegi filter mapping entry in my web.xml as > described in <http://wiki.apache.org/myfaces/JSF_and_Acegi>. > When I start Tomcat, I get the following warning: "Ignored element > 'dispatcher' as child of 'filter-mapping'.", generated by the FilterMapping > method in org.apache.myfaces.shared_impl.webapp.webxml.WebXmlParser. I also > noticed that jsp forward actions aren't caught by Acegi. Has anybody any idea > what I am doing wrong here? The WebXmlParser is part of the > tomahawk-1.1.3.jar. > > Kind regards, > Erik Govaers > > > > > > Erik Govaers > Medewerker Gehandicaptenzorg > Dienst Welzijn Provincie Antwerpen > Boomgaardstraat 22 > 2600 Berchem > Tel.: 03/240 56 72 > Fax: 03/240 61 62 > > > ------------------------------------------------------------------------ > > <?xml version="1.0" encoding="UTF-8"?> > > <web-app > id="WebApp_ID" > version="2.4" > xmlns="http://java.sun.com/xml/ns/j2ee" > xmlns:xsi="http://java.sun.com/xml/ns/j2ee > http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee > http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> > > <!-- This web.xml can be used during debugging, when there is no > myfaces.jar > library available. > > The faces-config.xml file (that is normally in the myfaces.jar) > must be > copied to the /WEB-INF directory of the web context. > > The TLDs (that are normally in the myfaces.jar) must be > copied to the /WEB-INF/lib directory of the web context.--> > <description>debug web.xml</description> > > <context-param> > <param-name>javax.faces.CONFIG_FILES</param-name> > <param-value>/WEB-INF/faces-navigation.xml</param-value> > </context-param> > > <context-param> > <param-name>javax.faces.STATE_SAVING_METHOD</param-name> > <param-value>server</param-value> > <description> > State saving method: "client" or "server" (= default) > See > JSF Specification 2.5.2 > </description> > </context-param> > > <context-param> > <param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name> > <param-value>true</param-value> > <description> > This parameter tells MyFaces if javascript code should > be > allowed in the rendered HTML output. If javascript is > allowed, command_link anchors will have javascript code > that > submits the corresponding form. If javascript is not > allowed, the state saving info and nested parameters > will be > added as url parameters. Default: "true" > </description> > </context-param> > > <context-param> > <param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name> > <param-value>false</param-value> > </context-param> > > <context-param> > <param-name>org.apache.myfaces.PRETTY_HTML</param-name> > <param-value>true</param-value> > <description> > If true, rendered HTML code will be formatted, so that > it is > "human readable". i.e. additional line separators and > whitespace will be written, that do not influence the > HTML > code. Default: "true" > </description> > </context-param> > > <context-param> > <param-name>org.apache.myfaces.AUTO_SCROLL</param-name> > <param-value>true</param-value> > <description> > If true, a javascript function will be rendered that is > able > to restore the former vertical scroll on every request. > Convenient feature if you have pages with long lists > and you > do not want the browser page to always jump to the top > if > you trigger a link or button action that stays on the > same > page. Default: "false" > </description> > </context-param> > > <context-param> > > <param-name>org.apache.myfaces.CHECK_EXTENSIONS_FILTER</param-name> > <param-value>false</param-value> > </context-param> > > <context-param> > <param-name>org.apache.myfaces.ADD_RESOURCE_CLASS</param-name> > > <param-value>org.apache.myfaces.component.html.util.StreamingAddResource</param-value> > </context-param> > > <context-param> > > <param-name>org.apache.myfaces.COMPRESS_STATE_IN_SESSION</param-name> > <param-value>false</param-value> > </context-param> > > <context-param> > > <param-name>org.apache.myfaces.SERIALIZE_STATE_IN_SESSION</param-name> > <param-value>false</param-value> > </context-param> > > <!-- Tiles ViewHandler config file --> > > <context-param> > <param-name>tiles-definitions</param-name> > <param-value>/WEB-INF/tiles.xml</param-value> > <description> > Tiles configuration definition files and a listener > need to > be defined. the listener will initialize > JspTilesViewHandlerImpl with tiles definitions. > </description> > </context-param> > > <!-- > - Location of the XML file that defines the root application > context. > - Applied by ContextLoaderServlet. > - > - Can include "/WEB-INF/dataAccessContext-local.xml" for a > single-database > - context > --> > <context-param> > <param-name>contextConfigLocation</param-name> > <param-value> > > /WEB-INF/dataAccessContext-local.xml,/WEB-INF/applicationContext.xml,/WEB-INF/securityContext.xml > </param-value> > </context-param> > > <!-- - - - - - - - ACEGI FILTERS - - - - - - - - --> > > <filter> > <filter-name>Acegi Filter Chain Proxy</filter-name> > <filter-class> > org.acegisecurity.util.FilterToBeanProxy > </filter-class> > <init-param> > <param-name>targetClass</param-name> > <param-value> > org.acegisecurity.util.FilterChainProxy > </param-value> > </init-param> > </filter> > > <!-- - - - - - - - END ACEGI FILTERS - - - - - - - - --> > > <!-- EXTENSIONS FILTER --> > > <filter> > <filter-name>extensionsFilter</filter-name> > <filter-class> > org.apache.myfaces.webapp.filter.ExtensionsFilter > </filter-class> > <init-param> > <param-name>uploadMaxFileSize</param-name> > <param-value>100m</param-value> > <description> > Set the size limit for uploaded files. Format: > 10 - 10 > bytes 10k - 10 KB 10m - 10 MB 1g - 1 GB > </description> > </init-param> > <init-param> > <param-name>uploadThresholdSize</param-name> > <param-value>100k</param-value> > <description> > Set the threshold size - files below this limit > are > stored in memory, files above this limit are > stored on > disk. > > Format: 10 - 10 bytes 10k - 10 KB 10m - 10 MB > 1g - 1 GB > </description> > </init-param> > <!-- <init-param> > <param-name>uploadRepositoryPath</param-name> > <param-value>/temp</param-value> > <description>Set the path where the intermediary files > will be stored. > </description> > </init-param>--> > </filter> > > <filter-mapping> > <filter-name>Acegi Filter Chain Proxy</filter-name> > <url-pattern>/*</url-pattern> > <dispatcher>FORWARD</dispatcher> > <dispatcher>REQUEST</dispatcher> > </filter-mapping> > > <filter-mapping> > <filter-name>extensionsFilter</filter-name> > <url-pattern>*.jsf</url-pattern> > </filter-mapping> > > <filter-mapping> > <filter-name>extensionsFilter</filter-name> > <url-pattern>/faces/*</url-pattern> > </filter-mapping> > > <!-- extension mapping for adding <script/>, <link/>, and other > resource tags to JSF-pages --> > <filter-mapping> > <filter-name>extensionsFilter</filter-name> > <!-- servlet-name must match the name of your > javax.faces.webapp.FacesServlet entry --> > <servlet-name>Faces Servlet</servlet-name> > </filter-mapping> > > <!-- > - Loads the root application context of this web app at startup, > - by default from "/WEB-INF/applicationContext.xml". > - Note that you need to fall back to Spring's > ContextLoaderServlet for > - J2EE servers that do not follow the Servlet 2.4 > initialization order. > - > - Use > WebApplicationContextUtils.getWebApplicationContext(servletContext) > - to access it anywhere in the web application, outside of the > framework. > - > - The root context is the parent of all servlet-specific > contexts. > - This means that its beans are automatically available in > these child contexts, > - both for getBean(name) calls and (external) bean references. > --> > <listener> > <listener-class> > org.springframework.web.context.ContextLoaderListener > </listener-class> > </listener> > > <!-- FACES SERVLET --> > > <servlet> > <servlet-name>SourceCodeServlet</servlet-name> > > <servlet-class>org.apache.myfaces.shared_tomahawk.util.servlet.SourceCodeServlet</servlet-class> > </servlet> > > <servlet> > <servlet-name>Faces Servlet</servlet-name> > <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> > <load-on-startup>1</load-on-startup> > </servlet> > > <!-- Faces Servlet Mapping --> > > <!-- extension mapping --> > <servlet-mapping> > <servlet-name>Faces Servlet</servlet-name> > <url-pattern>*.jsf</url-pattern> > </servlet-mapping> > > <!-- WELCOME FILES --> > > <welcome-file-list> > <!-- <welcome-file>index.jsp</welcome-file> --> > <welcome-file>index.html</welcome-file> > <!-- <welcome-file>./pages/web/homePage.jsp</welcome-file> --> > </welcome-file-list> > > </web-app> >

