Refactor LDAPClient (#1357)
This commit is contained in:
parent
ea26d4209e
commit
805868f75f
|
@ -1,23 +1,16 @@
|
||||||
package com.baeldung.ldap.client;
|
package com.baeldung.ldap.client;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.core.env.Environment;
|
||||||
|
import org.springframework.ldap.core.*;
|
||||||
|
import org.springframework.ldap.support.LdapNameBuilder;
|
||||||
|
|
||||||
|
import javax.naming.Name;
|
||||||
import java.security.MessageDigest;
|
import java.security.MessageDigest;
|
||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
import java.util.Base64;
|
import java.util.Base64;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.naming.Name;
|
|
||||||
import javax.naming.NamingException;
|
|
||||||
import javax.naming.directory.Attributes;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.core.env.Environment;
|
|
||||||
import org.springframework.ldap.core.AttributesMapper;
|
|
||||||
import org.springframework.ldap.core.ContextSource;
|
|
||||||
import org.springframework.ldap.core.DirContextAdapter;
|
|
||||||
import org.springframework.ldap.core.DirContextOperations;
|
|
||||||
import org.springframework.ldap.core.LdapTemplate;
|
|
||||||
import org.springframework.ldap.support.LdapNameBuilder;
|
|
||||||
|
|
||||||
public class LdapClient {
|
public class LdapClient {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
@ -34,16 +27,20 @@ public class LdapClient {
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> search(final String username) {
|
public List<String> search(final String username) {
|
||||||
List<String> users = ldapTemplate.search("ou=users", "cn=" + username, new AttributesMapper<String>() {
|
return ldapTemplate.search(
|
||||||
public String mapFromAttributes(Attributes attrs) throws NamingException {
|
"ou=users",
|
||||||
return (String) attrs.get("cn").get();
|
"cn=" + username,
|
||||||
}
|
(AttributesMapper<String>) attrs -> (String) attrs
|
||||||
});
|
.get("cn")
|
||||||
return users;
|
.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void create(final String username, final String password) {
|
public void create(final String username, final String password) {
|
||||||
Name dn = LdapNameBuilder.newInstance().add("ou", "users").add("cn", username).build();
|
Name dn = LdapNameBuilder
|
||||||
|
.newInstance()
|
||||||
|
.add("ou", "users")
|
||||||
|
.add("cn", username)
|
||||||
|
.build();
|
||||||
DirContextAdapter context = new DirContextAdapter(dn);
|
DirContextAdapter context = new DirContextAdapter(dn);
|
||||||
|
|
||||||
context.setAttributeValues("objectclass", new String[] { "top", "person", "organizationalPerson", "inetOrgPerson" });
|
context.setAttributeValues("objectclass", new String[] { "top", "person", "organizationalPerson", "inetOrgPerson" });
|
||||||
|
@ -55,7 +52,11 @@ public class LdapClient {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void modify(final String username, final String password) {
|
public void modify(final String username, final String password) {
|
||||||
Name dn = LdapNameBuilder.newInstance().add("ou", "users").add("cn", username).build();
|
Name dn = LdapNameBuilder
|
||||||
|
.newInstance()
|
||||||
|
.add("ou", "users")
|
||||||
|
.add("cn", username)
|
||||||
|
.build();
|
||||||
DirContextOperations context = ldapTemplate.lookupContext(dn);
|
DirContextOperations context = ldapTemplate.lookupContext(dn);
|
||||||
|
|
||||||
context.setAttributeValues("objectclass", new String[] { "top", "person", "organizationalPerson", "inetOrgPerson" });
|
context.setAttributeValues("objectclass", new String[] { "top", "person", "organizationalPerson", "inetOrgPerson" });
|
||||||
|
@ -71,7 +72,9 @@ public class LdapClient {
|
||||||
try {
|
try {
|
||||||
MessageDigest digest = MessageDigest.getInstance("SHA");
|
MessageDigest digest = MessageDigest.getInstance("SHA");
|
||||||
digest.update(password.getBytes());
|
digest.update(password.getBytes());
|
||||||
base64 = Base64.getEncoder().encodeToString(digest.digest());
|
base64 = Base64
|
||||||
|
.getEncoder()
|
||||||
|
.encodeToString(digest.digest());
|
||||||
} catch (NoSuchAlgorithmException e) {
|
} catch (NoSuchAlgorithmException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue