Hey everyone,

I'd like to make a change to org.jasig.portal.LoginServlet -- the piece of code that orchestrates a login in uPortal. I'd like to make this change in rel-2-5-patches and in trunk.

I'd like to change line 194 from...

  String parmValue = request.getParameter(parmName);

To instead be...

String parmValue = request.getAttribute(parmName) != null ? (String) request.getAttribute(parmName) : request.getParameter(parmName);

My motivation is that, as it stands, authentication in uPortal can only accept information from request parameters. Per the Servlet API, request parameters are read-only. Therefore anything I want to examine in a SecurityContext implementation (viz. in the authenticate() method) *must* come across from the user's browser as a URL parameter or a form field.

By contrast I can set request _attributes_ in a servlet filter. The change I propose, therefore, would allow servlet filters to communicate with SecutiryContext implementations, and opens the door to a host of new, flexible approaches to authentication in the portal.

For example, imagine I wanted to allow users to type in friendly-looking usernames like 'awills' or 'apetro'. But behind the scenes the authentication mechanism prescribed by my institution requires an employee_id instead. This change would allow me to translate 'awills' into an employee_id in a servlet filter (via db lookup perhaps?), then pass employee_id to a standard SecurityContext implementation as a request attribute.

I also suspect this change will make integrations with technologies like CAS less invasive. In fact the task that has me thinking about this change is basically uPortal integration with a home-grown CAS alternative.

Please share your thoughts.

drew wills

--
Andrew Wills
UNICON, Inc.
Office:  (480) 558-2476
http://code.google.com/p/cernunnos/

--
Join your friends and colleagues at JA-SIG with Altitude: June 24-27, 2007 in 
Denver, CO USA.

Featuring keynotes by: Phil Windley, Matt Raible, Matt Asay
Sessions on topics including: CAS, uPortal, Portlets, Sakai, Identity 
Management, and Open Source

For more information & registration visit: 
http://www.ja-sig.org/conferences/07summer/index.html
---
You are currently subscribed to [email protected] as: [EMAIL 
PROTECTED]
To unsubscribe send a blank email to [EMAIL PROTECTED]

Reply via email to