The Spring Security
2.0.x documentation does a great job of explaining:
- how the pre-authentication concept ties in with SSO systems,
- what classes are offered out-of-the-box,
- and how to configure them
but it doesn't explicitly state how the the
preAuthN Provider is reading the authentication data accumulated by the
preAuthN Filters.
One would imagine that there would be a default
UserDetailService implementation as well, which can be configured with the preAuthN Provider but if you go looking into the
UserDetail package summary, there is no such thing.
What to do? Well if we look closer, the
AuthenticationUserDetailsService interface in the
org.springframework.security.userdetails package is implemented by
PreAuthenticatedGrantedAuthoritiesUserDetailsService which sits in the
org.springframework.security.providers.preauth package.
This works out well but the spring documentation offers a "Siteminder Example Configuration" where they place the
UserDetailsByNameServiceWrapper inside the preAUthN user details service and
PreAuthenticatedGrantedAuthoritiesUserDetailsService is nowhere to be seen ... so it can seem a bit confusing as to how it should be used or where it should be specified.
I found my a clue through this
forum entry and apparently
PreAuthenticatedGrantedAuthoritiesUserDetailsService can be specified as the class attribute of the
preAuthenticatedUserDetailsService property ... and the use of an
UserDetailService is strictly optional depending on whether or not one needs to pull anymore information about the user.
That's all folks, hope this sends you on your way to a successful integration.