Skip to content

Commit 66c1167

Browse files
Piyush Sadangi (EXT)piyush kumar sadangi
authored andcommitted
Reduce 6 LDAP calls to 4
1 parent a36b905 commit 66c1167

File tree

2 files changed

+31
-7
lines changed

2 files changed

+31
-7
lines changed

publish-common/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,11 @@
6262
<artifactId>spring-security-ldap</artifactId>
6363
<scope>compile</scope>
6464
</dependency>
65+
<dependency>
66+
<groupId>org.springframework.ldap</groupId>
67+
<artifactId>spring-ldap-core</artifactId>
68+
<version>2.3.8.RELEASE</version>
69+
</dependency>
6570
<dependency>
6671
<groupId>io.springfox</groupId>
6772
<artifactId>springfox-swagger2</artifactId>

publish-service/src/main/java/com/ericsson/eiffel/remrem/publish/config/SecurityConfig.java

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,20 @@
2121
import org.springframework.beans.factory.annotation.Autowired;
2222
import org.springframework.beans.factory.annotation.Value;
2323
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
24+
import org.springframework.context.annotation.Bean;
2425
import org.springframework.context.annotation.Configuration;
2526
import org.springframework.context.annotation.Profile;
26-
import org.springframework.ldap.core.support.BaseLdapPathContextSource;
2727
import org.springframework.ldap.core.support.LdapContextSource;
2828
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
2929
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
3030
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
3131
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
32+
import org.springframework.security.ldap.authentication.BindAuthenticator;
33+
import org.springframework.security.ldap.authentication.LdapAuthenticationProvider;
34+
import org.springframework.security.ldap.authentication.LdapAuthenticator;
35+
import org.springframework.security.ldap.search.FilterBasedLdapUserSearch;
36+
import org.springframework.ldap.pool.validation.DefaultDirContextValidator;
37+
import org.springframework.ldap.core.ContextSource;
3238

3339
/**
3440
* This class is used to enable the ldap authentication based on property
@@ -74,20 +80,33 @@ public Integer getTimeOut() {
7480
@Autowired
7581
private CustomAuthenticationEntryPoint customAuthenticationEntryPoint;
7682

77-
@Autowired
78-
protected void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
83+
@Override
84+
public void configure(AuthenticationManagerBuilder auth) throws Exception {
7985
final String jasyptKey = RabbitMqPropertiesConfig.readJasyptKeyFile(jasyptKeyFilePath);
8086
if (managerPassword.startsWith("{ENC(") && managerPassword.endsWith("}")) {
8187
managerPassword = DecryptionUtils.decryptString(
8288
managerPassword.substring(1, managerPassword.length() - 1), jasyptKey);
8389
}
8490
LOGGER.debug("LDAP server url: " + ldapUrl);
85-
auth.ldapAuthentication()
86-
.userSearchFilter(userSearchFilter)
87-
.contextSource(ldapContextSource());
91+
92+
// Initialize and configure the LdapContextSource
93+
LdapContextSource contextSource = ldapContextSource();
94+
95+
// Configure BindAuthenticator with the context source and user search filter
96+
BindAuthenticator bindAuthenticator = new BindAuthenticator(contextSource);
97+
bindAuthenticator.setUserSearch(new FilterBasedLdapUserSearch(
98+
"", // Empty base indicates search starts at root DN provided in contextSource
99+
userSearchFilter,
100+
contextSource));
101+
102+
// Setup LdapAuthenticationProvider
103+
LdapAuthenticationProvider ldapAuthProvider = new LdapAuthenticationProvider(bindAuthenticator);
104+
105+
// Configure the authentication provider
106+
auth.authenticationProvider(ldapAuthProvider);
88107
}
89108

90-
public BaseLdapPathContextSource ldapContextSource() {
109+
public LdapContextSource ldapContextSource() {
91110
LdapContextSource ldap = new LdapContextSource();
92111
ldap.setUrl(ldapUrl);
93112
ldap.setBase(rootDn);

0 commit comments

Comments
 (0)