Hi Scott,
  As per your email, I configured web.xml and applicationContext.xml for
proxying. But when I call ..principal.getProxyTicketFor(), I am getting
error "No ProxyGrantingTicket was supplied, so no Proxy Ticket can be
retrieved".


Thanks,
Leena

Here is snippet from my applicationContext.xml which is similar to the one
provided in cas-sample of spring-security.
   <sec:http entry-point-ref="casProcessingFilterEntryPoint" >
        <sec:intercept-url pattern="/user/*.action" access="ROLE_USER" />
        <sec:logout logout-success-url="/cas-logout.jsp"/>
    </sec:http>

    <sec:authentication-manager alias="authenticationManager"/>

    <bean id="casProcessingFilter"
class="org.springframework.security.ui.cas.CasProcessingFilter">
        <sec:custom-filter after="CAS_PROCESSING_FILTER"/>
        <property name="authenticationManager" ref="authenticationManager"/>
        <property name="authenticationFailureUrl" value="
http://localhost:8080/cas/authorizationFailure.jsp"/>
        <property name="defaultTargetUrl" value="/"/>
        <property name="proxyGrantingTicketStorage"
ref="proxyGrantingTicketStorage" />
        <property name="proxyReceptorUrl" value="
https://localhost:8080/webappA/proxy/receptor"; />
    </bean>

    <bean id="casProcessingFilterEntryPoint"
class="org.springframework.security.ui.cas.CasProcessingFilterEntryPoint">
        <property name="loginUrl" value="https://localhost:8443/cas/login"/>
        <property name="serviceProperties" ref="serviceProperties"/>
    </bean>

    <bean id="casAuthenticationProvider"
class="org.springframework.security.providers.cas.CasAuthenticationProvider">
        <sec:custom-authentication-provider />
        <property name="userDetailsService" ref="userCasService"/>
        <property name="serviceProperties" ref="serviceProperties" />
        <property name="ticketValidator">
            <bean
class="org.jasig.cas.client.validation.Cas20ServiceTicketValidator"> <!--
tried ProxyTicketValidator too -->
                <constructor-arg index="0" value="https://localhost:8443/cas";
/>
                <property name="proxyGrantingTicketStorage"
ref="proxyGrantingTicketStorage" />
                <property name="proxyCallbackUrl" value="
https://localhost:8080/webappA/proxy/receptor"; />
                <!--  property name="acceptAnyProxy" value="true"  -->

            </bean>
        </property>
        <property name="key" value="an_id_for_this_auth_provider_only"/>
    </bean>

    <bean id="proxyGrantingTicketStorage"
class="org.jasig.cas.client.proxy.ProxyGrantingTicketStorageImpl" />

    <bean id="serviceProperties"
class="org.springframework.security.ui.cas.ServiceProperties">
        <property name="service" value="
https://localhost:8443/webappA/j_spring_cas_security_check"/>
        <property name="sendRenew" value="false"/>
    </bean>

    <bean id="userCasService" class="">
        <property name="dataSource" ref="dataSource" />
    </bean>

................ Web.xml of application A ---------
   <filter>
        <filter-name>springSecurityFilterChain</filter-name>

<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>
    <filter-mapping>
      <filter-name>springSecurityFilterChain</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>

    <filter>
      <filter-name>CAS Assertion Thread Local Filter</filter-name>

<filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>
    </filter>
    <filter-mapping>
      <filter-name>CAS Assertion Thread Local Filter</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>




On Thu, Sep 25, 2008 at 10:28 PM, Leena Borle <[EMAIL PROTECTED]> wrote:

> Hello,
>   I have 2 webapplications, say webappA and webappB. WebappA has Cas-Java
> client 3.1.3  with spring security-2.0.3 setup. WebappB has Cas-java client
> 3.1.3 configured in web.xml setup. Cas server is Cas3.3. All these
> applications work fine when I call them from the browser.
>   But actually what I want to do is,  in webappA, I have HttpClient, that
> needs to access some data from webappB.  This is where I am stuck. I added
> proxy-support in web.xml of webappB according to the instruction. How do I
> obtain proxy-ticket to pass it to url(
> http://localhost:8080/webappB/...?ticket=...)  of webappB? I do have
> access to spring's CasAuthentication Object whose credentials contain
> service ticket for webappA. How do I generate proxy-ticket from it? If I
> pass this same ticket to the url, I get "Invalid Ticket" message from the
> Cas server.
>     Is there any proxy example available for Cas-client 3.1.
>
> web.xml for WebAppB is as follows.
>
>      <filter>
>         <filter-name>CAS Validation Filter</filter-name>
>
> <filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
>             <init-param>
>                 <param-name>casServerUrlPrefix</param-name>
>                 <param-value>https://localhost:8443/cas</param-value>
>             </init-param>
>             <init-param>
>                 <param-name>serverName</param-name>
>                 <param-value>http://localhost:8080</param-value>
>               </init-param>
>             <init-param>
>                 <param-name>acceptAnyProxy</param-name>
>                 <param-value>true</param-value>
>               </init-param>
>             <init-param>
>                 <param-name>proxyReceptorUrl</param-name>
>                 <param-value>/proxy/receptor</param-value>
>               </init-param>
>             <init-param>
>                 <param-name>proxyCallbackUrl</param-name>
>                 <param-value>https://localhost:8443/WebAppB/proxy/receptor
> </param-value>
>               </init-param>
>             <init-param>
>                 <param-name>redirectAfterValidation</param-name>
>                 <param-value>true</param-value>
>               </init-param>
>     </filter>
>
>     <filter>
>         <filter-name>CAS Authentication Filter</filter-name>
>
> <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
>             <init-param>
>                 <param-name>casServerLoginUrl</param-name>
>                 <param-value>https://localhost:8443/cas/login
> </param-value>
>             </init-param>
>             <init-param>
>                 <param-name>serverName</param-name>
>                 <param-value>http://localhost:8080</param-value>
>               </init-param>
>             <init-param>
>                 <param-name>gatewat</param-name>
>                 <param-value>true</param-value>
>               </init-param>
>
>     </filter>
>
> Thanks,
> Leena
>
_______________________________________________
Yale CAS mailing list
[email protected]
http://tp.its.yale.edu/mailman/listinfo/cas

Reply via email to