Okay, for anyone interested, here is what I've done so far...
I've decided to modify edu.yale.its.tp.cas.servlet.Login to add a phone extension to the authentication call in doGet()...
Code:
...
} else if (handler instanceof PasswordHandler
&& request.getParameter("username") != null
&& request.getParameter("password") != null
&& request.getParameter("extension") != null
&& request.getParameter("lt") != null) {
// do we have a valid login ticket?
if (ltCache.getTicket(request.getParameter("lt")) != null) {
// do we have a valid username and password, and extension?
if (((PasswordHandler) handler).authenticate(request,
request.getParameter("username"), request.getParameter("password"),
request.getParameter("extension"))) {
// success: send a new TGC if we don't have a valid TGT from above
...
Thus, I also had to modify the Acegi CasPasswordHandlerProxy and CasPasswordHandler to check to make sure an extension was given.
Where I am now, is wondering if I should pass this phone extension to the TimeSheet application, or have my custom CAS Login class do the association itself. ???