updated examples
This commit is contained in:
parent
877cd5fc6d
commit
9ee25d4ab6
|
|
@ -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
|
||||
|
|
@ -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>
|
||||
|
|
@ -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>
|
||||
|
|
@ -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>
|
||||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
@ -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"/>
|
||||
|
|
|
|||
Loading…
Reference in New Issue