For authentication, Jetspeed 2 leverages Java 
                LoginModule 
                architecture.  It provides a DefaultLoginModule implementation and a
                flexible architecture to be able to authenticate user against multiple user repositories and provide user
                management capabilities across those repository.  A UserManager provides a set of coarsed
                services for authenticating and managing users.  The class diagram below illustrates how the 
                UserManager provides authentication to the DefaultLoginModule and leverages 
                the Authentication SPI to interact with various implementation and user stores.
            
                 
            
The various components described above fulfill the following functions:
| Component | Description | 
|---|---|
| DefaultLoginModule | Jetspeed 2 default LoginModule implementation which
                        leverages the authenticate()method of theUserManagerto provide
                        authentication against the variousAuthenticationProviderimplementation currently
                        configured. | 
| UserManager | Coarsed service providing authentication and user management.  The UserManagercode>
                        leverages the variousAuthenticationProviderimplementations exposed to it through
                        theAuthenticationProviderProxythrough theSecurityProvider. | 
| SecurityProvider | Provides access to the security providers exposing SPI implementation to the coarsed security services. | 
| AuthenticationProviderProxy | A proxy to the various AuthenticationProviderimplementations.  TheAuthenticationProviderProxyis responsible of invoking the correctAuthenticationProviderto authenticate or manage
                        a specific user against a specific data store. |