ソースを参照

Migrated to maven

Carlos Sanchez 21 年 前
コミット
518ee40740

+ 0 - 0
samples/contacts/war/WEB-INF/.cvsignore → samples/contacts/src/main/webapp/common/WEB-INF/.cvsignore


+ 0 - 0
samples/contacts/war/WEB-INF/caucho-servlet.xml → samples/contacts/src/main/webapp/common/WEB-INF/caucho-servlet.xml


+ 0 - 0
samples/contacts/war/WEB-INF/contacts-servlet.xml → samples/contacts/src/main/webapp/common/WEB-INF/contacts-servlet.xml


+ 40 - 40
samples/contacts/war/WEB-INF/jsp/add.jsp → samples/contacts/src/main/webapp/common/WEB-INF/jsp/add.jsp

@@ -1,40 +1,40 @@
-<%@ include file="/WEB-INF/jsp/include.jsp" %>
-<html>
-<head><title>Add New Contact</title></head>
-<body>
-<h1>Add Contact</h1>
-<form method="post">
-  <table width="95%" bgcolor="f8f8ff" border="0" cellspacing="0" cellpadding="5">
-    <tr>
-      <td alignment="right" width="20%">Name:</td>
-      <spring:bind path="webContact.name">
-        <td width="20%">
-          <input type="text" name="name" value="<c:out value="${status.value}"/>">
-        </td>
-        <td width="60%">
-          <font color="red"><c:out value="${status.errorMessage}"/></font>
-        </td>
-      </spring:bind>
-    </tr>
-    <tr>
-      <td alignment="right" width="20%">Email:</td>
-      <spring:bind path="webContact.email">
-        <td width="20%">
-          <input type="text" name="email" value="<c:out value="${status.value}"/>">
-        </td>
-        <td width="60%">
-          <font color="red"><c:out value="${status.errorMessage}"/></font>
-        </td>
-      </spring:bind>
-    </tr>
-  </table>
-  <br>
-  <spring:hasBindErrors name="webContact">
-    <b>Please fix all errors!</b>
-  </spring:hasBindErrors>
-  <br><br>
-  <input name="execute" type="submit" alignment="center" value="Execute">
-</form>
-<a href="<c:url value="../hello.htm"/>">Home</a>
-</body>
-</html>
+<%@ include file="/WEB-INF/jsp/include.jsp" %>
+<html>
+<head><title>Add New Contact</title></head>
+<body>
+<h1>Add Contact</h1>
+<form method="post">
+  <table width="95%" bgcolor="f8f8ff" border="0" cellspacing="0" cellpadding="5">
+    <tr>
+      <td alignment="right" width="20%">Name:</td>
+      <spring:bind path="webContact.name">
+        <td width="20%">
+          <input type="text" name="name" value="<c:out value="${status.value}"/>">
+        </td>
+        <td width="60%">
+          <font color="red"><c:out value="${status.errorMessage}"/></font>
+        </td>
+      </spring:bind>
+    </tr>
+    <tr>
+      <td alignment="right" width="20%">Email:</td>
+      <spring:bind path="webContact.email">
+        <td width="20%">
+          <input type="text" name="email" value="<c:out value="${status.value}"/>">
+        </td>
+        <td width="60%">
+          <font color="red"><c:out value="${status.errorMessage}"/></font>
+        </td>
+      </spring:bind>
+    </tr>
+  </table>
+  <br>
+  <spring:hasBindErrors name="webContact">
+    <b>Please fix all errors!</b>
+  </spring:hasBindErrors>
+  <br><br>
+  <input name="execute" type="submit" alignment="center" value="Execute">
+</form>
+<a href="<c:url value="../hello.htm"/>">Home</a>
+</body>
+</html>

+ 13 - 13
samples/contacts/war/WEB-INF/jsp/deleted.jsp → samples/contacts/src/main/webapp/common/WEB-INF/jsp/deleted.jsp

@@ -1,13 +1,13 @@
-<%@ include file="/WEB-INF/jsp/include.jsp" %>
-
-<html>
-<head><title>Deletion completed</title></head>
-<body>
-<h1>Deleted</h1>
-<P>
-<code>
-<c:out value="${contact}"/>
-</code>
-<p><a href="<c:url value="index.htm"/>">Manage</a>
-</body>
-</html>
+<%@ include file="/WEB-INF/jsp/include.jsp" %>
+
+<html>
+<head><title>Deletion completed</title></head>
+<body>
+<h1>Deleted</h1>
+<P>
+<code>
+<c:out value="${contact}"/>
+</code>
+<p><a href="<c:url value="index.htm"/>">Manage</a>
+</body>
+</html>

+ 32 - 32
samples/contacts/war/WEB-INF/jsp/hello.jsp → samples/contacts/src/main/webapp/common/WEB-INF/jsp/hello.jsp

@@ -1,32 +1,32 @@
-<%@ include file="/WEB-INF/jsp/include.jsp" %>
-
-<html>
-<head><title>Contacts Security Demo</title></head>
-<body>
-<h1>Contacts Security Demo</h1>
-<p>This is a very simple application to demonstrate the Acegi Security System for Spring.
-The application manages contacts, partitioned based on the user that owns them.
-Users may only manage their own contacts, and only users with ROLE_SUPERVISOR
-are allowed to delete their contacts. It also demonstrates how to configure
-server-side secure objects so they can only be accessed via a public facade.
-
-<P>If you deployed the contacts-container-adapter.war file, the application
-automatically extracts the principal from the web container (which should be 
-configured with a suitable Acegi Security System for Spring adapter). If
-you're using the standard contacts.war file, the application is entirely
-self-contained and you don't need to do anything special with your web
-container. If you're using the contacts-cas.war file, please review the
-setup in samples/contacts/etc/cas/applicationContext.xml for your CAS server
-and if necessary rebuild using the Contacts application's build.xml.
-
-<P>This application also demonstrates a public method, which is used to select
-the random contact that is shown below:
-<P>
-<code>
-<c:out value="${contact}"/>
-</code>
-<p>
-<p><A HREF="<c:url value="secure/index.htm"/>">Manage</a>
-<A HREF="<c:url value="secure/debug.jsp"/>">Debug</a>
-</body>
-</html>
+<%@ include file="/WEB-INF/jsp/include.jsp" %>
+
+<html>
+<head><title>Contacts Security Demo</title></head>
+<body>
+<h1>Contacts Security Demo</h1>
+<p>This is a very simple application to demonstrate the Acegi Security System for Spring.
+The application manages contacts, partitioned based on the user that owns them.
+Users may only manage their own contacts, and only users with ROLE_SUPERVISOR
+are allowed to delete their contacts. It also demonstrates how to configure
+server-side secure objects so they can only be accessed via a public facade.
+
+<P>If you deployed the contacts-container-adapter.war file, the application
+automatically extracts the principal from the web container (which should be 
+configured with a suitable Acegi Security System for Spring adapter). If
+you're using the standard contacts.war file, the application is entirely
+self-contained and you don't need to do anything special with your web
+container. If you're using the contacts-cas.war file, please review the
+setup in samples/contacts/etc/cas/applicationContext.xml for your CAS server
+and if necessary rebuild using the Contacts application's build.xml.
+
+<P>This application also demonstrates a public method, which is used to select
+the random contact that is shown below:
+<P>
+<code>
+<c:out value="${contact}"/>
+</code>
+<p>
+<p><A HREF="<c:url value="secure/index.htm"/>">Manage</a>
+<A HREF="<c:url value="secure/debug.jsp"/>">Debug</a>
+</body>
+</html>

+ 5 - 5
samples/contacts/war/WEB-INF/jsp/include.jsp → samples/contacts/src/main/webapp/common/WEB-INF/jsp/include.jsp

@@ -1,5 +1,5 @@
-<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
-<%@ taglib prefix="authz" uri="http://acegisecurity.sf.net/authz" %>
-
-<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
-<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
+<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
+<%@ taglib prefix="authz" uri="http://acegisecurity.sf.net/authz" %>
+
+<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>

+ 29 - 29
samples/contacts/war/WEB-INF/jsp/index.jsp → samples/contacts/src/main/webapp/common/WEB-INF/jsp/index.jsp

@@ -1,29 +1,29 @@
-<%@ include file="/WEB-INF/jsp/include.jsp" %>
-
-<html>
-<head><title>Your Contacts</title></head>
-<body>
-<h1><c:out value="${model.user}"/>'s Contacts</h1>
-<P>
-<table cellpadding=3 border=0>
-<tr><td><b>id</b></td><td><b>Name</b></td><td><b>Email</b></td></tr>
-<c:forEach var="contact" items="${model.contacts}">
-  <tr>
-  <td>
-      <c:out value="${contact.id}"/>
-  </td>
-  <td>
-      <c:out value="${contact.name}"/>
-  </td>
-  <td>
-      <c:out value="${contact.email}"/>
-  </td>
-  <authz:authorize ifAllGranted="ROLE_SUPERVISOR">
-    <td><A HREF="<c:url value="del.htm"><c:param name="id" value="${contact.id}"/></c:url>">Del</A></td>
-  </authz:authorize>
-  </tr>
-</c:forEach>
-</table>
-<p><a href="<c:url value="add.htm"/>">Add</a>   <p><a href="<c:url value="../logoff.jsp"/>">Logoff</a>
-</body>
-</html>
+<%@ include file="/WEB-INF/jsp/include.jsp" %>
+
+<html>
+<head><title>Your Contacts</title></head>
+<body>
+<h1><c:out value="${model.user}"/>'s Contacts</h1>
+<P>
+<table cellpadding=3 border=0>
+<tr><td><b>id</b></td><td><b>Name</b></td><td><b>Email</b></td></tr>
+<c:forEach var="contact" items="${model.contacts}">
+  <tr>
+  <td>
+      <c:out value="${contact.id}"/>
+  </td>
+  <td>
+      <c:out value="${contact.name}"/>
+  </td>
+  <td>
+      <c:out value="${contact.email}"/>
+  </td>
+  <authz:authorize ifAllGranted="ROLE_SUPERVISOR">
+    <td><A HREF="<c:url value="del.htm"><c:param name="id" value="${contact.id}"/></c:url>">Del</A></td>
+  </authz:authorize>
+  </tr>
+</c:forEach>
+</table>
+<p><a href="<c:url value="add.htm"/>">Add</a>   <p><a href="<c:url value="../logoff.jsp"/>">Logoff</a>
+</body>
+</html>

+ 193 - 193
samples/contacts/war/WEB-INF/spring.tld → samples/contacts/src/main/webapp/common/WEB-INF/spring.tld

@@ -1,193 +1,193 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
-
-<taglib>
-
-	<tlib-version>1.0</tlib-version>
-
-	<jsp-version>1.2</jsp-version>
-
-	<short-name>Spring</short-name>
-
-	<uri>http://www.springframework.org/tags</uri>
-
-	<description>Spring Framework JSP Tag Library. Authors: Rod Johnson, Juergen Hoeller</description>
-
-	<tag>
-
-		<name>htmlEscape</name>
-		<tag-class>org.springframework.web.servlet.tags.HtmlEscapeTag</tag-class>
-		<body-content>JSP</body-content>
-
-		<description>
-			Sets default HTML escape value for the current page.
-		</description>
-
-		<attribute>
-			<name>defaultHtmlEscape</name>
-			<required>true</required>
-			<rtexprvalue>true</rtexprvalue>
-		</attribute>
-
-	</tag>
-
-	<tag>
-
-		<name>message</name>
-		<tag-class>org.springframework.web.servlet.tags.MessageTag</tag-class>
-		<body-content>JSP</body-content>
-
-		<description>
-			Retrieves the message with the given code, or text if code isn't resolvable.
-		</description>
-
-		<attribute>
-			<name>code</name>
-			<required>false</required>
-			<rtexprvalue>true</rtexprvalue>
-		</attribute>
-
-		<attribute>
-			<name>text</name>
-			<required>false</required>
-			<rtexprvalue>true</rtexprvalue>
-		</attribute>
-
-		<attribute>
-			<name>htmlEscape</name>
-			<required>false</required>
-			<rtexprvalue>true</rtexprvalue>
-		</attribute>
-
-	</tag>
-
-	<tag>
-
-		<name>theme</name>
-		<tag-class>org.springframework.web.servlet.tags.ThemeTag</tag-class>
-		<body-content>JSP</body-content>
-
-		<description>
-			Retrieves the theme message with the given code, or text if code isn't resolvable.
-		</description>
-
-		<attribute>
-			<name>code</name>
-			<required>false</required>
-			<rtexprvalue>true</rtexprvalue>
-		</attribute>
-
-		<attribute>
-			<name>text</name>
-			<required>false</required>
-			<rtexprvalue>true</rtexprvalue>
-		</attribute>
-
-		<attribute>
-			<name>htmlEscape</name>
-			<required>false</required>
-			<rtexprvalue>true</rtexprvalue>
-		</attribute>
-
-	</tag>
-
-	<tag>
-
-		<name>hasBindErrors</name>
-		<tag-class>org.springframework.web.servlet.tags.BindErrorsTag</tag-class>
-		<body-content>JSP</body-content>
-
-		<description>
-			Provides Errors instance in case of bind errors.
-		</description>
-
-		<!-- Note: Was "Integer count" in earlier version -->
-		<variable>
-			<name-given>errors</name-given>
-			<variable-class>org.springframework.validation.Errors</variable-class>
-		</variable>
-
-		<!-- Note: Now one Errors instance per bind object -> name of object needed -->
-		<attribute>
-			<name>name</name>
-			<required>true</required>
-			<rtexprvalue>true</rtexprvalue>
-		</attribute>
-
-		<attribute>
-			<name>htmlEscape</name>
-			<required>false</required>
-			<rtexprvalue>true</rtexprvalue>
-		</attribute>
-
-	</tag>
-
-	<tag>
-
-		<name>bind</name>
-		<tag-class>org.springframework.web.servlet.tags.BindTag</tag-class>
-		<body-content>JSP</body-content>
-
-		<description>
-			Provides BindStatus instance for certain bind path.
-		</description>
-
-		<!-- Note: Was "bind" in earlier version -->
-		<variable>
-			<name-given>status</name-given>
-			<variable-class>org.springframework.web.servlet.tags.BindStatus</variable-class>
-		</variable>
-
-		<!-- Note: Was "value" in earlier version -->
-		<attribute>
-			<name>path</name>
-			<required>true</required>
-			<rtexprvalue>true</rtexprvalue>
-		</attribute>
-
-		<attribute>
-			<name>htmlEscape</name>
-			<required>false</required>
-			<rtexprvalue>true</rtexprvalue>
-		</attribute>
-
-	</tag>
-	
-	<tag>
-
-		<name>transform</name>
-		<tag-class>org.springframework.web.servlet.tags.TransformTag</tag-class>
-		<body-content>JSP</body-content>
-
-		<description>
-			Provides transformation of variables to Strings using appropriate
-            Custom Editor from BindTag (can only be used inside BindTag)
-		</description>
-
-        <attribute>
-            <name>value</name>
-            <required>true</required>
-            <rtexprvalue>true</rtexprvalue>
-        </attribute>
-
-		<attribute>
-			<name>var</name>
-			<required>false</required>
-			<rtexprvalue>true</rtexprvalue>
-		</attribute>
-
-		<attribute>
-			<name>scope</name>
-			<required>false</required>
-			<rtexprvalue>true</rtexprvalue>
-		</attribute>
-
-		<attribute>
-			<name>htmlEscape</name>
-			<required>false</required>
-			<rtexprvalue>true</rtexprvalue>
-		</attribute>
-
-	</tag>
-
-</taglib>
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
+
+<taglib>
+
+	<tlib-version>1.0</tlib-version>
+
+	<jsp-version>1.2</jsp-version>
+
+	<short-name>Spring</short-name>
+
+	<uri>http://www.springframework.org/tags</uri>
+
+	<description>Spring Framework JSP Tag Library. Authors: Rod Johnson, Juergen Hoeller</description>
+
+	<tag>
+
+		<name>htmlEscape</name>
+		<tag-class>org.springframework.web.servlet.tags.HtmlEscapeTag</tag-class>
+		<body-content>JSP</body-content>
+
+		<description>
+			Sets default HTML escape value for the current page.
+		</description>
+
+		<attribute>
+			<name>defaultHtmlEscape</name>
+			<required>true</required>
+			<rtexprvalue>true</rtexprvalue>
+		</attribute>
+
+	</tag>
+
+	<tag>
+
+		<name>message</name>
+		<tag-class>org.springframework.web.servlet.tags.MessageTag</tag-class>
+		<body-content>JSP</body-content>
+
+		<description>
+			Retrieves the message with the given code, or text if code isn't resolvable.
+		</description>
+
+		<attribute>
+			<name>code</name>
+			<required>false</required>
+			<rtexprvalue>true</rtexprvalue>
+		</attribute>
+
+		<attribute>
+			<name>text</name>
+			<required>false</required>
+			<rtexprvalue>true</rtexprvalue>
+		</attribute>
+
+		<attribute>
+			<name>htmlEscape</name>
+			<required>false</required>
+			<rtexprvalue>true</rtexprvalue>
+		</attribute>
+
+	</tag>
+
+	<tag>
+
+		<name>theme</name>
+		<tag-class>org.springframework.web.servlet.tags.ThemeTag</tag-class>
+		<body-content>JSP</body-content>
+
+		<description>
+			Retrieves the theme message with the given code, or text if code isn't resolvable.
+		</description>
+
+		<attribute>
+			<name>code</name>
+			<required>false</required>
+			<rtexprvalue>true</rtexprvalue>
+		</attribute>
+
+		<attribute>
+			<name>text</name>
+			<required>false</required>
+			<rtexprvalue>true</rtexprvalue>
+		</attribute>
+
+		<attribute>
+			<name>htmlEscape</name>
+			<required>false</required>
+			<rtexprvalue>true</rtexprvalue>
+		</attribute>
+
+	</tag>
+
+	<tag>
+
+		<name>hasBindErrors</name>
+		<tag-class>org.springframework.web.servlet.tags.BindErrorsTag</tag-class>
+		<body-content>JSP</body-content>
+
+		<description>
+			Provides Errors instance in case of bind errors.
+		</description>
+
+		<!-- Note: Was "Integer count" in earlier version -->
+		<variable>
+			<name-given>errors</name-given>
+			<variable-class>org.springframework.validation.Errors</variable-class>
+		</variable>
+
+		<!-- Note: Now one Errors instance per bind object -> name of object needed -->
+		<attribute>
+			<name>name</name>
+			<required>true</required>
+			<rtexprvalue>true</rtexprvalue>
+		</attribute>
+
+		<attribute>
+			<name>htmlEscape</name>
+			<required>false</required>
+			<rtexprvalue>true</rtexprvalue>
+		</attribute>
+
+	</tag>
+
+	<tag>
+
+		<name>bind</name>
+		<tag-class>org.springframework.web.servlet.tags.BindTag</tag-class>
+		<body-content>JSP</body-content>
+
+		<description>
+			Provides BindStatus instance for certain bind path.
+		</description>
+
+		<!-- Note: Was "bind" in earlier version -->
+		<variable>
+			<name-given>status</name-given>
+			<variable-class>org.springframework.web.servlet.tags.BindStatus</variable-class>
+		</variable>
+
+		<!-- Note: Was "value" in earlier version -->
+		<attribute>
+			<name>path</name>
+			<required>true</required>
+			<rtexprvalue>true</rtexprvalue>
+		</attribute>
+
+		<attribute>
+			<name>htmlEscape</name>
+			<required>false</required>
+			<rtexprvalue>true</rtexprvalue>
+		</attribute>
+
+	</tag>
+	
+	<tag>
+
+		<name>transform</name>
+		<tag-class>org.springframework.web.servlet.tags.TransformTag</tag-class>
+		<body-content>JSP</body-content>
+
+		<description>
+			Provides transformation of variables to Strings using appropriate
+            Custom Editor from BindTag (can only be used inside BindTag)
+		</description>
+
+        <attribute>
+            <name>value</name>
+            <required>true</required>
+            <rtexprvalue>true</rtexprvalue>
+        </attribute>
+
+		<attribute>
+			<name>var</name>
+			<required>false</required>
+			<rtexprvalue>true</rtexprvalue>
+		</attribute>
+
+		<attribute>
+			<name>scope</name>
+			<required>false</required>
+			<rtexprvalue>true</rtexprvalue>
+		</attribute>
+
+		<attribute>
+			<name>htmlEscape</name>
+			<required>false</required>
+			<rtexprvalue>true</rtexprvalue>
+		</attribute>
+
+	</tag>
+
+</taglib>

+ 4 - 4
samples/contacts/war/index.jsp → samples/contacts/src/main/webapp/common/index.jsp

@@ -1,4 +1,4 @@
-<%@ include file="/WEB-INF/jsp/include.jsp" %>
-
-<%-- Redirected because we can't set the welcome page to a virtual URL. --%>
-<c:redirect url="/hello.htm"/>
+<%@ include file="/WEB-INF/jsp/include.jsp" %>
+
+<%-- Redirected because we can't set the welcome page to a virtual URL. --%>
+<c:redirect url="/hello.htm"/>

+ 2 - 2
samples/contacts/war/logoff.jsp → samples/contacts/src/main/webapp/common/logoff.jsp

@@ -1,3 +1,3 @@
-<%session.invalidate();
-response.sendRedirect("index.jsp");
+<%session.invalidate();
+response.sendRedirect("index.jsp");
 %>

+ 47 - 47
samples/contacts/war/secure/debug.jsp → samples/contacts/src/main/webapp/common/secure/debug.jsp

@@ -1,47 +1,47 @@
-<%@ page import="net.sf.acegisecurity.context.Context" %>
-<%@ page import="net.sf.acegisecurity.context.ContextHolder" %>
-<%@ page import="net.sf.acegisecurity.context.SecureContext" %>
-<%@ page import="net.sf.acegisecurity.Authentication" %>
-<%@ page import="net.sf.acegisecurity.GrantedAuthority" %>
-<%@ page import="net.sf.acegisecurity.adapters.AuthByAdapter" %>
-
-<% Context context = ContextHolder.getContext();
-if (context != null) { %>
-	Context on ContextHolder is of type: <%= context.getClass().getName() %><BR><BR>
-	
-<%	if (context instanceof SecureContext) { %>
-		The Context implements SecureContext.<BR><BR>
-<%		SecureContext sc = (SecureContext) context;
-		
-		Authentication auth = sc.getAuthentication();
-		if (auth != null) { %>
-			Authentication object is of type: <%= auth.getClass().getName() %><BR><BR>
-			Authentication object as a String: <%= auth.toString() %><BR><BR>
-			
-			Authentication object holds the following granted authorities:<BR><BR>
-<%			GrantedAuthority[] granted = auth.getAuthorities();
-			for (int i = 0; i < granted.length; i++) { %>
-				<%= granted[i].toString() %> (getAuthority(): <%= granted[i].getAuthority() %>)<BR>
-<%			}
-
-			if (auth instanceof AuthByAdapter) { %>
-				<BR><B>SUCCESS! Your container adapter appears to be properly configured!</B><BR><BR>
-<%			} else { %>
-				<BR><B>SUCCESS! Your web filter appears to be properly configured!</B><BR>
-<%			}
-			
-		} else { %>
-			Authentication object is null.<BR>
-			This is an error and your container adapter will not operate properly until corrected.<BR><BR>
-<%		}
-	} else { %>
-		<B>ContextHolder does not contain a SecureContext.</B><BR>
-		This is an error and your container adapter will not operate properly until corrected.<BR><BR>
-<%	}
-} else { %>
-	<B>ContextHolder on ContextHolder is null.</B><BR>
-	This indicates improper setup of the container adapter. Refer to the reference documentation.<BR>
-	Also ensure the correct subclass of AbstractMvcIntegrationInterceptor is being used for your container.<BR>
-<%}
-%>
-
+<%@ page import="net.sf.acegisecurity.context.Context" %>
+<%@ page import="net.sf.acegisecurity.context.ContextHolder" %>
+<%@ page import="net.sf.acegisecurity.context.SecureContext" %>
+<%@ page import="net.sf.acegisecurity.Authentication" %>
+<%@ page import="net.sf.acegisecurity.GrantedAuthority" %>
+<%@ page import="net.sf.acegisecurity.adapters.AuthByAdapter" %>
+
+<% Context context = ContextHolder.getContext();
+if (context != null) { %>
+	Context on ContextHolder is of type: <%= context.getClass().getName() %><BR><BR>
+	
+<%	if (context instanceof SecureContext) { %>
+		The Context implements SecureContext.<BR><BR>
+<%		SecureContext sc = (SecureContext) context;
+		
+		Authentication auth = sc.getAuthentication();
+		if (auth != null) { %>
+			Authentication object is of type: <%= auth.getClass().getName() %><BR><BR>
+			Authentication object as a String: <%= auth.toString() %><BR><BR>
+			
+			Authentication object holds the following granted authorities:<BR><BR>
+<%			GrantedAuthority[] granted = auth.getAuthorities();
+			for (int i = 0; i < granted.length; i++) { %>
+				<%= granted[i].toString() %> (getAuthority(): <%= granted[i].getAuthority() %>)<BR>
+<%			}
+
+			if (auth instanceof AuthByAdapter) { %>
+				<BR><B>SUCCESS! Your container adapter appears to be properly configured!</B><BR><BR>
+<%			} else { %>
+				<BR><B>SUCCESS! Your web filter appears to be properly configured!</B><BR>
+<%			}
+			
+		} else { %>
+			Authentication object is null.<BR>
+			This is an error and your container adapter will not operate properly until corrected.<BR><BR>
+<%		}
+	} else { %>
+		<B>ContextHolder does not contain a SecureContext.</B><BR>
+		This is an error and your container adapter will not operate properly until corrected.<BR><BR>
+<%	}
+} else { %>
+	<B>ContextHolder on ContextHolder is null.</B><BR>
+	This indicates improper setup of the container adapter. Refer to the reference documentation.<BR>
+	Also ensure the correct subclass of AbstractMvcIntegrationInterceptor is being used for your container.<BR>
+<%}
+%>
+