123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- | XSL Sheet used by the web.xml to acegi-security beans converter
- | to create the new acegified web.xml.
- | $Id$
- -->
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
- <!-- The CAS proxy url (left empty if not to be used) -->
- <xsl:param name="cas-proxy-url"/>
- <!-- The acegi context file name - used in the -->
- <xsl:param name="acegi-security-context-file" select="'applicationContext-acegi-security.xml'"/>
- <xsl:output doctype-public="-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
- doctype-system="http://java.sun.com/dtd/web-app_2_3.dtd"
- indent="yes"/>
- <!-- Identity template which we override for specific cases -->
- <xsl:template match="@*|node()">
- <xsl:copy>
- <xsl:apply-templates select="@*|node()"/>
- </xsl:copy>
- </xsl:template>
-
- <xsl:template match="web-app">
- <web-app>
- <xsl:apply-templates select="icon|display-name|description|distributable"/>
- <xsl:apply-templates select="context-param"/>
- <xsl:call-template name="insert-spring-context-param"/>
- <xsl:if test="$cas-proxy-url">
- <!-- Required for CAS ProxyTicketReceptor servlet. This is the
- URL to CAS' "proxy" actuator, where a PGT and TargetService can
- be presented to obtain a new proxy ticket. THIS CAN BE
- REMOVED IF THE APPLICATION DOESN'T NEED TO ACT AS A PROXY -->
- <context-param>
- <param-name>edu.yale.its.tp.cas.proxyUrl</param-name>
- <param-value><xsl:value-of select="$cas-proxy-url"/></param-value>
- </context-param>
- </xsl:if>
- <filter>
- <filter-name>Acegi Filter Chain Proxy</filter-name>
- <filter-class>net.sf.acegisecurity.util.FilterToBeanProxy</filter-class>
- <init-param>
- <param-name>targetClass</param-name>
- <param-value>net.sf.acegisecurity.util.FilterChainProxy</param-value>
- </init-param>
- </filter>
- <xsl:apply-templates select="filter"/>
-
- <filter-mapping>
- <filter-name>Acegi Filter Chain Proxy</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
-
- <xsl:apply-templates select="filter-mapping"/>
-
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
- <xsl:apply-templates select="listener"/>
-
- <!-- Run any remaining non-security elements through the identity template -->
- <xsl:apply-templates select="servlet|servlet-mapping|session-config|mime-mapping|welcome-file-list|error-page|taglib|resource-env-ref|resource-ref|env-entry|ejb-ref|ejb-local-ref"/>
-
- </web-app>
- </xsl:template>
- <!--
- | Looks for the case where we have an existing Spring context and appends
- | the acegi file to the list of app. context files. Otherwise just copies the contents.
- -->
- <xsl:template match="context-param">
- <context-param>
- <xsl:choose>
- <xsl:when test="./param-name = 'contextConfigLocation'">
- <param-name>contextConfigLocation</param-name>
- <param-value>
- <xsl:value-of select="./param-value"/>
- <xsl:value-of select="concat(' /WEB-INF/',$acegi-security-context-file)"/><xsl:text>
 </xsl:text>
- </param-value>
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-templates />
- </xsl:otherwise>
- </xsl:choose>
- </context-param>
- </xsl:template>
- <!--
- | Inserts a Spring config location context-param if one doesn't already exist.
- | If there is one, do nothing as it will be handled by the context-param template above.
- -->
- <xsl:template name="insert-spring-context-param">
- <xsl:if test="not(./context-param/param-name[string() = 'contextConfigLocation'])">
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>
- <xsl:value-of select="concat('/WEB-INF/',$acegi-security-context-file)"/><xsl:text>
</xsl:text>
- </param-value>
- </context-param>
- </xsl:if>
- </xsl:template>
-
- </xsl:stylesheet>
|