title: BeanCreationException: Error creating bean with name 'springSecurityFilterChain'
body: <p>I am trying to use ldap authentication.</p>
  
  <p>Here is my code.</p>
  
  <pre><code>@Configuration
  public class WebSecurityConfig extends WebSecurityConfigurerAdapter{
      @Override
      public void configure(HttpSecurity http) throws Exception {
          http
          .authorizeRequests()
          .anyRequest().fullyAuthenticated()
          .and()
          .formLogin();
      }
  
      @Override
      public void configure(AuthenticationManagerBuilder auth) throws Exception {     
          auth
          .ldapAuthentication()
          .userDnPatterns("uid={0},ou=people")
          .groupSearchBase("ou=AppUsers")
          .contextSource()
           .url("ldap://xxx.corp.example.com/dc=mycompany,dc=com")
           .and()
          .passwordCompare()
           .passwordEncoder(new BCryptPasswordEncoder())
           .passwordAttribute("userPassword");
          }
  }
  
  application.yml
  
  server:
     port : 8080
  
  logging.config: config/logback.xml
  
  spring:
    ldap:
      embedded:
       base-dn: dc=mycompany,dc=com
       credential: 
         username: uid=dsb-admin
         password: abc123
       ldif: schema.ldif
       port: 123
       validation:
         enabled: false
  
  schema.ldif 
  dn: cn=dsb-admin,ou=NAppUsers,dc=mycompany,dc=com
  objectclass: Services
  cn: dsb-admin
  ou: NAppUsers
  uid: dsb-admin
  userPassword: abc123
  uniqueMember: uid=dsb-admin,ou=people,dc=mycompany,dc=com
  
  dn: cn=AccountID,ou=raccounts,ou=NAppUsers,dc=mycompany,dc=com
  objectclass: AccountService
  cn: AccountID
  ou: raccounts
  uid: AccountID
  userPassword: YYY
  uniqueMember: uid=AccountID,ou=people,dc=mycompany,dc=com
  
  </code></pre>
  
  <p>Here is the info I was given to use. I am not sure if I am mapping them correct or not.</p>
  
  <pre><code>ldapsearch -x -LLL -h xxx.corp.example.com-p 123 -D "cn=dsb-admin,ou=NAppUsers,o=Services" -w abc123 -b "ou=raccounts,dc=mycompany,dc=com" "(&amp;(ObjectClass=AccountService)(AccountID=YYY))"
  xxx.corp.example.com
  </code></pre>
  
  <p>I am getting error:</p>
  
  <pre><code>org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'springSecurityFilterChain' defined in class path resource [org/springframework/security/config/annotation/web/configuration/WebSecurityConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.servlet.Filter]: Factory method 'springSecurityFilterChain' threw exception; nested exception is java.lang.RuntimeException: Could not postProcess org.springframework.security.ldap.DefaultSpringSecurityContextSource@6f3f0fae of type class org.springframework.security.ldap.DefaultSpringSecurityContextSource
      at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:656)
      at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:484)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1338)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:557)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
      at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)
      at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
      at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
      at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
      at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
      at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
      at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:879)
      at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878)
      at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)
      at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141)
      at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747)
      at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
      at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
      at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)
      at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215)
      at com.spectrum.tos.BaseApplication.main(BaseApplication.java:9)
  Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.servlet.Filter]: Factory method 'springSecurityFilterChain' threw exception; nested exception is java.lang.RuntimeException: Could not postProcess org.springframework.security.ldap.DefaultSpringSecurityContextSource@6f3f0fae of type class org.springframework.security.ldap.DefaultSpringSecurityContextSource
      at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
      at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:651)
      ... 21 common frames omitted
  Caused by: java.lang.RuntimeException: Could not postProcess org.springframework.security.ldap.DefaultSpringSecurityContextSource@6f3f0fae of type class org.springframework.security.ldap.DefaultSpringSecurityContextSource
      at org.springframework.security.config.annotation.configuration.AutowireBeanFactoryObjectPostProcessor.postProcess(AutowireBeanFactoryObjectPostProcessor.java:72)
      at org.springframework.security.config.annotation.SecurityConfigurerAdapter$CompositeObjectPostProcessor.postProcess(SecurityConfigurerAdapter.java:122)
      at org.springframework.security.config.annotation.SecurityConfigurerAdapter.postProcess(SecurityConfigurerAdapter.java:81)
      at org.springframework.security.config.annotation.authentication.configurers.ldap.LdapAuthenticationProviderConfigurer.access$300(LdapAuthenticationProviderConfigurer.java:60)
      at org.springframework.security.config.annotation.authentication.configurers.ldap.LdapAuthenticationProviderConfigurer$ContextSourceBuilder.build(LdapAuthenticationProviderConfigurer.java:535)
      at org.springframework.security.config.annotation.authentication.configurers.ldap.LdapAuthenticationProviderConfigurer$ContextSourceBuilder.access$600(LdapAuthenticationProviderConfigurer.java:432)
      at org.springframework.security.config.annotation.authentication.configurers.ldap.LdapAuthenticationProviderConfigurer.getContextSource(LdapAuthenticationProviderConfigurer.java:599)
      at org.springframework.security.config.annotation.authentication.configurers.ldap.LdapAuthenticationProviderConfigurer.build(LdapAuthenticationProviderConfigurer.java:78)
      at org.springframework.security.config.annotation.authentication.configurers.ldap.LdapAuthenticationProviderConfigurer.configure(LdapAuthenticationProviderConfigurer.java:376)
      at org.springframework.security.config.annotation.authentication.configurers.ldap.LdapAuthenticationProviderConfigurer.configure(LdapAuthenticationProviderConfigurer.java:60)
      at org.springframework.security.config.annotation.AbstractConfiguredSecurityBuilder.configure(AbstractConfiguredSecurityBuilder.java:383)
      at org.springframework.security.config.annotation.AbstractConfiguredSecurityBuilder.doBuild(AbstractConfiguredSecurityBuilder.java:329)
      at org.springframework.security.config.annotation.AbstractSecurityBuilder.build(AbstractSecurityBuilder.java:41)
      at org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter.authenticationManager(WebSecurityConfigurerAdapter.java:272)
  </code></pre>