updated examples

This commit is contained in:
Scott Battaglia 2006-10-04 01:33:40 +00:00
parent 877cd5fc6d
commit 9ee25d4ab6
7 changed files with 320 additions and 81 deletions

View File

@ -2,3 +2,5 @@ cas.server.gateway=false
cas.server.renew=false
cas.server.url=https://localhost:8443/cas/
cas.server.proxyCallbackUrl=https://localhost:8443/manager/proxy/Receptor
cas.client.serverName=https://localhost:8443
cas.client.proxyCallbackUrl=https://localhost:8443/myClientApp/casProxyReceptor

View File

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="propertyPlaceholderConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location"
value="/WEB-INF/cas-client.properties"/>
</bean>
<bean
id="authorizedDecider"
class="org.jasig.cas.client.authorization.DefaultAuthorizedDeciderImpl">
<constructor-arg index="0">
<list>
<value>scott</value>
<value>velpi</value>
<value>apetro</value>
</list>
</constructor-arg>
</bean>
<bean
id="httpClient"
class="org.jasig.cas.util.HttpClient3FactoryBean"/>
<bean
id="proxyRetriever"
class="org.jasig.cas.client.proxy.Cas20ProxyRetriever">
<constructor-arg index="0" value="${cas.server.url}"/>
<constructor-arg index="1" ref="httpClient"/>
</bean>
<bean id="proxyGrantingTicketStorage"
class="org.jasig.cas.client.proxy.ProxyGrantingTicketStorageImpl"/>
<!-- final String casServerUrl, final boolean renew, final HttpClient httpClient, final Service proxyCallbackUrl, List proxyChains, boolean acceptAnyProxy, final ProxyGrantingTicketStorage proxyGrantingTicketStorage, final ProxyRetriever proxyRetriever -->
<bean
id="ticketValidator"
class="org.jasig.cas.client.validation.Cas20ProxyTicketValidator">
<constructor-arg index="0" value="${cas.server.url}"/>
<constructor-arg index="1" value="${cas.server.renew}"/>
<constructor-arg index="2" ref="httpClient"/>
<constructor-arg index="3">
<bean
class="org.jasig.cas.authentication.principal.SimpleService">
<!-- proxyCallbackUrl: does nothing when using the ServiceTicketValidator -->
<constructor-arg value="${cas.client.proxyCallbackUrl}"/>
</bean>
</constructor-arg>
<constructor-arg index="4">
<list></list>
</constructor-arg>
<constructor-arg index="5" value="true"/>
<constructor-arg index="6" ref="proxyGrantingTicketStorage"/>
<constructor-arg index="7" ref="proxyRetriever"/>
</bean>
<bean
id="casHttpServletRequestWrapperFilter"
class="org.jasig.cas.client.web.filter.HttpServletRequestWrapperFilter"/>
<bean
id="casValidationFilter"
class="org.jasig.cas.client.web.filter.TicketValidationFilter">
<!-- serverName of client to construct serviceURL eg:"thisServer.myDomain.net" -->
<constructor-arg index="0" value="${cas.client.serverName}"/>
<!-- serviceUrl of client: either provide serverName or serviceUrl -->
<constructor-arg index="1">
<null/>
</constructor-arg>
<!-- ticketValidator implementation (defines protocol version to be used) -->
<constructor-arg index="2" ref="ticketValidator"/>
</bean>
<bean
id="casAuthenticationFilter"
class="org.jasig.cas.client.web.filter.AuthenticationFilter">
<!-- serverName of client to construct serviceURL eg:"thisServer.myDomain.net" -->
<constructor-arg index="0" value="${cas.client.serverName}"/>
<!-- serviceUrl of client: either provide serverName or serviceUrl -->
<constructor-arg index="1">
<null/>
</constructor-arg>
<!-- CAS server loginUrl -->
<constructor-arg index="2" value="${cas.server.url}login"/>
<!-- renew? -->
<constructor-arg index="3" value="${cas.server.renew}"/>
<!-- gateway? -->
<constructor-arg index="4" value="${cas.server.gateway}"/>
</bean>
<bean
id="casAuthorizationFilter"
class="org.jasig.cas.client.web.filter.AuthorizationFilter">
<!-- casAuthorizedDecider bean/class -->
<constructor-arg index="0" ref="authorizedDecider"></constructor-arg>
</bean>
</beans>

View File

@ -1,72 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="propertyPlaceholderConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location"
value="/WEB-INF/cas-client.properties"/>
</bean>
<bean id="ticketValidator"
class="org.jasig.cas.client.validation.Cas20ServiceTicketValidator">
<constructor-arg index="0" value="${cas.server.url}"/>
<constructor-arg index="1" value="false"/>
<constructor-arg index="2">
<bean class="org.jasig.cas.util.HttpClient3FactoryBean"/>
</constructor-arg>
<constructor-arg index="3">
<bean
class="org.jasig.cas.authentication.principal.SimpleService">
<constructor-arg value="${cas.server.proxyCallbackUrl}"/>
</bean>
</constructor-arg>
<constructor-arg index="4" ref="proxyGrantingTicketStorage"/>
</bean>
<bean id="proxyGrantingTicketStorage"
class="org.jasig.cas.client.proxy.ProxyGrantingTicketStorageImpl"/>
<bean
id="casHttpServletRequestWrapperFilter"
class="org.jasig.cas.client.web.filter.HttpServletRequestWrapperFilter"/>
<bean
id="casValidationFilter"
class="org.jasig.cas.client.web.filter.TicketValidationFilter">
<constructor-arg index="0" value="localhost:8443"/>
<constructor-arg index="1">
<null/>
</constructor-arg>
<constructor-arg index="2" ref="ticketValidator"/>
</bean>
<bean
id="casAuthenticationFilter"
class="org.jasig.cas.client.web.filter.AuthenticationFilter">
<constructor-arg index="0" value="localhost:8443"/>
<constructor-arg index="1">
<null/>
</constructor-arg>
<constructor-arg index="2" value="${cas.server.url}login"/>
<constructor-arg index="3" value="false"/>
<constructor-arg index="4" value="false"/>
</bean>
<bean
id="casAuthorizationFilter"
class="org.jasig.cas.client.web.filter.AuthorizationFilter">
<constructor-arg index="0" ref="decider"></constructor-arg>
</bean>
<bean
id="decider"
class="org.jasig.cas.client.authorization.DefaultAuthorizedDeciderImpl">
<constructor-arg index="0">
<list>
<value>battags</value>
</list>
</constructor-arg>
</bean>
</beans>

View File

@ -0,0 +1,109 @@
<html>
<head>
<title>JA-SIG CAS client test - <%=request.getHeader("host") %>
</title>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
</head>
<body>
<hr/>
<%
//CAS server root
//String casServerUrl= "https://localhost/cas/";
String casServerUrl = "https://idp.example.be/cas/";
//thread-safe httpclient
org.apache.commons.httpclient.HttpClient casHttpClient = new org.apache.commons.httpclient.HttpClient();
//name of cas assertion in session
String casAssName = "_cas_assertion_";
Object assObject = session.getAttribute("_cas_assertion_");
if (assObject != null) {
org.jasig.cas.client.validation.Assertion assertion = (org.jasig.cas.client.validation.Assertion) assObject;
String principalId = assertion.getPrincipal().getId();
String pgtId = assertion.getProxyGrantingTicketId();
out.println("principalID: " + principalId + "<br />");
out.println("PGT-ID: " + pgtId + "<br />");
out.println("--<br />");
org.jasig.cas.client.proxy.Cas20ProxyRetriever ptRet = new org.jasig.cas.client.proxy.Cas20ProxyRetriever(casServerUrl, casHttpClient);
org.jasig.cas.authentication.principal.SimpleService targetService = new org.jasig.cas.authentication.principal.SimpleService("https://testService");
String pt = ptRet.getProxyTicketIdFor(pgtId, targetService);
out.println("retrieved PT: " + pt + "<br />");
} else {
out.println("no CAS assertion with name \"" + casAssName + "\" found in session");
}
%>
<hr/>
<%
out.print("request.getRemoteUser: " + request.getRemoteUser() + "<br/>");
out.print("REMOTE_USER: " + request.getHeader("REMOTE_USER") + "<br/>");
out.print("HTTP_REMOTE_USER: " + request.getHeader("HTTP_REMOTE_USER") + "<br/>");
%>
<hr/>
<u>REQUEST PARAMETERS (GET/POST)</u><br/>
<table>
<%
java.util.Enumeration eParameters = request.getParameterNames();
while (eParameters.hasMoreElements()) {
String name = (String) eParameters.nextElement();
Object object = request.getParameter(name);
String value = object.toString();
out.println("<tr><td>" + name + "</td><td>" + value + "</td></tr>");
}
%>
</table>
<hr/>
<u>ALL HEADERS</u><br/>
<table>
<%
java.util.Enumeration eHeaders = request.getHeaderNames();
while (eHeaders.hasMoreElements()) {
String name = (String) eHeaders.nextElement();
Object object = request.getHeader(name);
String value = object.toString();
out.println("<tr><td>" + name + "</td><td>" + value + "</td></tr>");
}
%>
</table>
<hr/>
<u>SESSION</u><br/>
<table>
<%="SESSION_ID: " + session.getId() + "<br/>"%>
<%
java.util.Enumeration eSession = session.getAttributeNames();
while (eSession.hasMoreElements()) {
String name = (String) eSession.nextElement();
Object object = session.getAttribute(name);
String value = object.toString();
out.println("<tr><td>" + name + "</td><td>" + value + "</td></tr>");
}
%>
</table>
<hr/>
</body>
</html>

View File

@ -11,12 +11,12 @@
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/simpleFilterExample.xml
/WEB-INF/simpleFilter.xml
</param-value>
</context-param>
<filter>
<filter-name>CAS Authentication Filter Proxy</filter-name>
<filter-name>CAS Authentication Filter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetBeanName</param-name>
@ -25,7 +25,7 @@
</filter>
<filter>
<filter-name>CAS Validation Filter Proxy</filter-name>
<filter-name>CAS Validation Filter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetBeanName</param-name>
@ -34,7 +34,7 @@
</filter>
<filter>
<filter-name>CAS Authorization Filter Proxy</filter-name>
<filter-name>CAS Authorization Filter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetBeanName</param-name>
@ -43,17 +43,17 @@
</filter>
<filter-mapping>
<filter-name>CAS Authentication Filter Proxy</filter-name>
<filter-name>CAS Authentication Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CAS Validation Filter Proxy</filter-name>
<filter-name>CAS Validation Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CAS Authorization Filter Proxy</filter-name>
<filter-name>CAS Authorization Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
@ -71,7 +71,7 @@
-->
<servlet>
<servlet-name>casclient</servlet-name>
<servlet-class>org.jasig.cas.client.proxy.ProxyReceptorServlet</servlet-class>
<servlet-class>org.jasig.cas.client.proxy.SpringConfiguredProxyReceptorServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

View File

@ -0,0 +1,98 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN' 'http://java.sun.com/dtd/web-app_2_3.dtd'>
<web-app>
<display-name>Java CAS Client</display-name>
<!--
- Location of the XML file that defines the root application context
- Applied by ContextLoaderListener.
-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/simpleFilter.xml
</param-value>
</context-param>
<filter>
<filter-name>CAS Authentication Filter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetBeanName</param-name>
<param-value>casAuthenticationFilter</param-value>
</init-param>
</filter>
<filter>
<filter-name>CAS Validation Filter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetBeanName</param-name>
<param-value>casValidationFilter</param-value>
</init-param>
</filter>
<!--
<filter>
<filter-name>CAS Authorization Filter Proxy</filter-name>
<filter-class>org.jasig.cas.client.util.FilterToBeanProxy</filter-class>
<init-param>
<param-name>targetBean</param-name>
<param-value>casAuthorizationFilter</param-value>
</init-param>
</filter>
-->
<filter>
<filter-name>CAS HttpServletRequestWrapperFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetBeanName</param-name>
<param-value>casHttpServletRequestWrapperFilter</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CAS Authentication Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CAS Validation Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--
<filter-mapping>
<filter-name>CAS Authorization Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
-->
<filter-mapping>
<filter-name>CAS HttpServletRequestWrapperFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--
- Loads the root application context of this web app at startup.
- The application context is then available via
- WebApplicationContextUtils.getWebApplicationContext(servletContext).
-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--
- Provides core MVC application controller. See contacts-servlet.xml.
-->
<servlet>
<servlet-name>casclient</servlet-name>
<servlet-class>org.jasig.cas.client.proxy.SpringConfiguredProxyReceptorServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>casclient</servlet-name>
<url-pattern>casProxyReceptor</url-pattern>
</servlet-mapping>
</web-app>

View File

@ -16,6 +16,7 @@
</constructor-arg>
<constructor-arg index="4" ref="casProxyGrantingTicketStorage"/>
<constructor-arg index="5" ref="casProxyRetriever"/>
</bean>
<bean
@ -24,7 +25,7 @@
<bean
id="casProxyReceiver"
id="casProxyRetriever"
class="org.jasig.cas.client.proxy.Cas20ProxyRetriever">
<constructor-arg value="https://localhost:8443/cas/"/>
<constructor-arg ref="httpClient"/>