Class PasswordPolicyAwareContextSource

java.lang.Object
org.springframework.ldap.core.support.AbstractContextSource
org.springframework.ldap.core.support.LdapContextSource
org.springframework.security.ldap.DefaultSpringSecurityContextSource
org.springframework.security.ldap.ppolicy.PasswordPolicyAwareContextSource
All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean, org.springframework.ldap.core.ContextSource, org.springframework.ldap.core.support.BaseLdapPathContextSource, org.springframework.ldap.core.support.BaseLdapPathSource

public class PasswordPolicyAwareContextSource extends DefaultSpringSecurityContextSource
Extended version of the DefaultSpringSecurityContextSource which adds support for the use of PasswordPolicyControl to make use of user account data stored in the directory.

When binding with specific username (not the userDn) property it will connect first as the userDn, then reconnect as the user in order to retrieve any password-policy control sent with the response, even if an exception occurs.

Since:
3.0
  • Field Summary

    Fields inherited from class org.springframework.security.ldap.DefaultSpringSecurityContextSource

    logger

    Fields inherited from class org.springframework.ldap.core.support.AbstractContextSource

    password, SUN_LDAP_POOLING_FLAG, userDn
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected Hashtable
    getAuthenticatedEnv(String principal, String credentials)
     
    getContext(String principal, String credentials)
     

    Methods inherited from class org.springframework.ldap.core.support.LdapContextSource

    getDirContextInstance

    Methods inherited from class org.springframework.ldap.core.support.AbstractContextSource

    afterPropertiesSet, assembleProviderUrlString, createContext, getAnonymousEnv, getAuthenticationSource, getBaseLdapName, getBaseLdapPath, getBaseLdapPathAsString, getContextFactory, getDirObjectFactory, getPassword, getReadOnlyContext, getReadWriteContext, getUrls, getUserDn, isAnonymousReadOnly, isPooled, setAnonymousReadOnly, setAuthenticationSource, setAuthenticationStrategy, setBase, setBaseEnvironmentProperties, setCacheEnvironmentProperties, setContextFactory, setDirObjectFactory, setPassword, setPooled, setReferral, setupAuthenticatedEnvironment, setUrl, setUrls, setUserDn

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • PasswordPolicyAwareContextSource

      public PasswordPolicyAwareContextSource(String providerUrl)
  • Method Details

    • getContext

      public DirContext getContext(String principal, String credentials) throws PasswordPolicyException
      Specified by:
      getContext in interface org.springframework.ldap.core.ContextSource
      Overrides:
      getContext in class org.springframework.ldap.core.support.AbstractContextSource
      Throws:
      PasswordPolicyException
    • getAuthenticatedEnv

      protected Hashtable getAuthenticatedEnv(String principal, String credentials)
      Overrides:
      getAuthenticatedEnv in class org.springframework.ldap.core.support.AbstractContextSource