'always throwing Bad credentials in Ldap authentication using Spring Boot

I tried many times, I think issue is in config class ,I was stuck from 2 days, please solve this

thank you in advance

my pom.xml

<modelVersion>4.0.0</modelVersion>
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.6.7</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>ldap</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>ldap</name>
<description>Demo project for Spring Boot</description>
<properties>
    <java.version>1.8</java.version>
</properties>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.ldap</groupId>
        <artifactId>spring-ldap-core</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-ldap</artifactId>
    </dependency>
    <dependency>
        <groupId>com.unboundid</groupId>
        <artifactId>unboundid-ldapsdk</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

this is config class and issue in this b'coz I checked filter can successfully find the Ldif file but not check value of this cridentials...

myConfig class

@Override
protected 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")
            .contextSource(contextSource())
            .passwordCompare()
            .passwordAttribute("userPassword");}
@Bean
public DefaultSpringSecurityContextSource contextSource() {
    return new DefaultSpringSecurityContextSource(Arrays.asList("localhost:8389/"),
            "dc=springframework,dc=org");
}

}

my application.properties file

   spring.ldap.embedded.ldif=classpath:test-server.ldif
   spring.ldap.embedded.base-dn=dc=springframework,dc=org
   spring.ldap.embedded.port=8389


Solution 1:[1]

Turns out that I can just do

pd.merge([lookup value], [lookup table], on = ['Name', 'Date of Birth']

which produces

Name        Date of Birth         Test 1         Test 2    ID#
Jack        1/1/2003              89             91        0
Ryan        1/8/2003              92             88        3
Jack        3/9/2003              93             79        1
Bob         12/2/2002             80             84        2
...

Then everything needed is to move the last column to the front.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Vuotelin