myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gert Vanthienen <gert.vanthie...@skynet.be>
Subject Re: MyFaces, Tomcat and Acegi Integration Problem
Date Wed, 20 Sep 2006 12:38:38 GMT
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
gert@anova.be

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

Mime
View raw message