I have been using CAS for a while.  We are slowly moving to a clustered 
environment.  To avoid the complexity of a clustered CAS server, I set it up as 
an HA-Singleton while letting the client app be clustered.

A typical call looks like:


*         Browser calls the client app.  Uses the cluster DNS alias that points 
to the load balancer.

*         Load balancer chooses a node and passes the call to the client app on 
node X.

*         Client app calls CAS for authentication.  Uses the cluster DNS alias 
that points to the load balancer.

*         Load balancer passes the call to the single instance of CAS.

*         CAS authenticates and calls back the app with the authenticated 
ticket.

Here come the problem:


*         If I use the DNS alias for the cluster the call goes to the load 
balancer, which in turn may or may not pass the call to the right node.  If it 
goes to the wrong node, it obviously doesn't work.

*         So I think, no problem... I'll add self-signed certificates to each 
node and pass the node's hostname and port in the callback so that CAS will 
make the callback to the right node.  But this is when I get "Authentication 
Failed: ticket 'ST-2-aQJM2bMCvJfcfj4M6hhR-cas' not recognized".  No idea why, 
although I suspect it might have something to do with the browser calling the 
client with the cluster alias and CAS calling back using the node hostname name.

Help!

Callback configuration:

<bean id="serviceProperties" 
class="org.springframework.security.cas.ServiceProperties"
    
p:service="https://${appServer}:${appHttpsPort}/${appName}/j_spring_cas_security_check";
    p:sendRenew="false" />

-- 
You are currently subscribed to [email protected] as: 
[email protected]
To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/cas-user

Reply via email to