...
That said, I think I have some concerns with the CredentialsBinder API and its associated LoginController implementation.
Executive summary
The abstraction provided by AbstractFormController is insufficiently flexible for implementation of the CAS 3 LoginController. LoginController will need to be implemented in terms of the BaseCommandController or AbstractController abstraction.
Discussion
Panel | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
For reference, the following is the class hierarchy for LoginController. Highlighted methods are those involved in the discussion below.
extends
extends
extends
extends
extends
extends
extends
|
...
What we see here is LoginController picking up the credentials from the "object" request parameter argument to this method (the Spring Web MVC command / form that this handler is going to handle). It binds the request to this object using its CredentialsBinder and then passes it into the CentralAuthenticationService service object to obtain the TGT string.
...