Class DefaultValuesAuthenticationSourceDecorator

java.lang.Object
org.springframework.ldap.authentication.DefaultValuesAuthenticationSourceDecorator
All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean, AuthenticationSource

public class DefaultValuesAuthenticationSourceDecorator extends Object implements AuthenticationSource, org.springframework.beans.factory.InitializingBean
Decorator on AuthenticationSource to have default authentication information be returned should the target return empty principal and credentials. Useful in combination with AcegiAuthenticationSource if users are to be allowed to read some information even though they are not logged in.

Note: The defaultUser should be an non-privileged user. This is important as this is the one that will be used when no user is logged in (i.e. empty principal is returned from the target AuthenticationSource).

  • Constructor Details

    • DefaultValuesAuthenticationSourceDecorator

      public DefaultValuesAuthenticationSourceDecorator()
      Constructor for bean usage.
    • DefaultValuesAuthenticationSourceDecorator

      public DefaultValuesAuthenticationSourceDecorator(AuthenticationSource target, String defaultUser, String defaultPassword)
      Constructor to setup instance directly.
      Parameters:
      target - the target AuthenticationSource.
      defaultUser - dn of the user to use when the target returns an empty principal.
      defaultPassword - password of the user to use when the target returns an empty principal.
  • Method Details

    • getCredentials

      public String getCredentials()
      Checks if the target's principal is not empty; if not, the credentials from the target is returned - otherwise return the defaultPassword.
      Specified by:
      getCredentials in interface AuthenticationSource
      Returns:
      the target's password if the target's principal is not empty, the defaultPassword otherwise.
    • getPrincipal

      public String getPrincipal()
      Checks if the target's principal is not empty; if not, this is returned - otherwise return the defaultPassword.
      Specified by:
      getPrincipal in interface AuthenticationSource
      Returns:
      the target's principal if it is not empty, the defaultPassword otherwise.
    • setDefaultPassword

      public void setDefaultPassword(String defaultPassword)
      Set the password of the default user.
      Parameters:
      defaultPassword - the password of the default user.
    • setDefaultUser

      public void setDefaultUser(String defaultUser)
      Set the default user DN. This should be a non-privileged user, since it will be used when no authentication information is returned from the target.
      Parameters:
      defaultUser - DN of the default user.
    • setTarget

      public void setTarget(AuthenticationSource target)
      Set the target AuthenticationSource.
      Parameters:
      target - the target AuthenticationSource.
    • afterPropertiesSet

      public void afterPropertiesSet() throws Exception
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
      Throws:
      Exception