Hello,
 
I'm using MyFaces with the Spring Framework and Acegi for building a 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 noticed that jsp forward actions aren't caught by Acegi. What am I Idoing wrong here?
 
Kind regards,
 
Erik Govaers
 
 
 
Erik Govaers
Lang Ossegoor 12
2390 Malle
Belgium
+32 (0)3 311 60 03
 
<?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>

	<filter-mapping>
		<filter-name>Acegi Filter Chain Proxy</filter-name>
		<url-pattern>/*</url-pattern>
		<dispatcher>FORWARD</dispatcher>
		<dispatcher>REQUEST</dispatcher>
	</filter-mapping>

	<!-- - - - - - - - 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>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>

Reply via email to