Xin,

uPortal 2.5.x and later ships with a working Java CAS client and example configuration for making use of it.

I highly recommend you make use of that built-in support for your CAS integration needs, using the documentation in the uPortal Manual.

http://www.ja-sig.org/wiki/x/kwA3

Scott, primary author of the JA-SIG Java CAS Client version 3.1, would agree: "One thing that isn't detailed [in the documentation] is the things left out (for now): * uPortal support. For the time being users should continue to use what is included in the uPortal 2.x releases. uPortal 3 will support Spring Security (which will eventually use the new client)."



The support built into uPortal for CAS integration is built on the Yale Java CAS Client. This client does not leverage the new advanced features of CAS 3.1, e.g. around SAML-style authentication responses, registered and registering services, and user attribute release. So far, by and large, this hasn't been a problem, since very few if any uPortal deployments are making use of these advanced CAS features. But the day will come to use these features. If it has come for you, I highly recommend you engage the uPortal and CAS projects in making an upgrade here to make the default support be by way of the JA-SIG Java CAS client and thereby mainstream these features.

Why hasn't this been done already, you might reasonably ask. The main reason is that there's an upcoming release of Acegi AKA Spring Security in which the CAS support is apparently changing to make use of the JA-SIG Java CAS client rather than the Yale Java CAS Client. uPortal is also looking to move to Acegi / Spring Security rather than the uPortal-specific security factory approach alluded to in the configuration you quote below. One thought (my viewpoint) is that it will be cheaper, easier, and less painful to *not* make a change to the way uPortal implements CAS support until *after* we get to Acegi / Spring Security, at which point we may pick up this new approach more cheaply anyway by virtue of whatever level of integration happens in Spring Security. (I expect additional integration effort will still be required to e.g. get the attributes where they need to go, etc., but Acegi should be a better framework to be doing that in anyway.)

Eric informed everyone in this missive that without someone stepping up to take ownership of the Spring Security API usage enhancement, uPortal 3.0 will likely ship without that feature in place. Which to my mind isn't that big a deal -- it is something that can be addressed gradually. What we have is awkward but working. (However, I would admit if pressed, that I'd love for someone to sponsor me / Unicon to apply efforts here to implement Spring Security integration. This one looks like oodles of fun...)

The instructions you found and linked below for making use of the JA- SIG Java CAS Client are out of date and applied to the 3.0 release but not the 3.1 release, in which uPortal-specific support has been removed.

http://www.ja-sig.org/wiki/x/gAMl

I have applied some tasteful graffiti to that page to stave off further confusion.

For history and prior discussion on this topic, see this April 2007 email post and the discussions linked from it.

There have been a number of approaches to supporting CAS integration in uPortal. Does one prefer a filter-based approach, or a non-filter- based approach? A filter-based approach was introduced in order to support dyamic login URLs that might convey parameters such as channels to instantiate. Previously, support for specific security contexts that supported CAS was hard-coded into specific CasConnectionContext LocalConnectionContext implementations. This meant basically that there were a number of CAS security context, local connection context, etc. implementations running around, all not talking to one another, and a channel looking to use CAS via a LocalConnectionContext couldn't support various CAS approaches without having its LCC changed.

I attempted to untangle this a bit by introducing some core CAS support to uPortal. This takes the form of an API for CAS-supporting security contexts and a LocalConnectionContext implementation that traverses the available SecurityContexts for the logged in user looking for one that implements the API. A channel making use of this LocalConnectionContext will support all API-implementing CAS- supporting security contexts, regardless of whether they are the two example implementations (one filter-using, one not) that ship with uPortal and happen to be implemented by making use of the Yale Java CAS Client that also ships with uPortal.

I suggest that an improvement on the approach proffered in the JA-SIG Java CAS Client 3.0.x is to produce uPortal Security Context implementations that make use of the JA-SIG Java CAS Client but implement the CAS-supporting security context APIs shipping with uPortal, such that the CasConnectionContext shipping with uPortal will successfully detect and make use of the CAS support in these new more advanced security context implementations. The idea is that channels need not be aware of what particular approach to CAS integration you are using.

Hope this helps to clarify.

Andrew

Andrew Petro
uPortal release engineer





On Dec 27, 2007, at 11:39 AM, xin zhang wrote:


Hi All,

I followed the instructions here http://www.ja-sig.org/wiki/display/
CASC/JA-SIG+CAS+Client+for+Java to integrate CAS with uPortal. I
download JA-SIG CAS Java Client 3.1.0-rc1. After modifying
security.properties file by adding

root =org.jasig.cas.client.integration.uportal.CasSecurityContextFactory
credentialToken.root=ticket

I got error.

uPortal Error

Sorry, but uPortal encountered an error that is preventing it from
rendering. The error must be corrected by system administrators. Try
again later.

I checked the package I download. There is no
org.jasig.cas.client.integration.uportal.CasSecurityContextFactory in
the package.

How to fix this error?

Thanks
_______________________________________________
Yale CAS mailing list
[email protected]
http://tp.its.yale.edu/mailman/listinfo/cas

_______________________________________________
Yale CAS mailing list
[email protected]
http://tp.its.yale.edu/mailman/listinfo/cas

Reply via email to