1.依赖包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-ldap</artifactId>
</dependency>
2.yml配置
ldap:
base: dc=spring,dc=io
urls: ldap://192.168.40.40:389
referral: follow
check: true
3.代码
@Service
public class LdapServiceImpl implements LdapService{
private static final Logger log = LoggerFactory.getLogger(LdapServiceImpl.class);
@Value("${ldap.base}")
private String base;
@Value("${ldap.urls}")
private String url;
@Value("${ldap.referral}")
private String referral;
@Value("${ldap.check}")
private boolean check = true;
private boolean LdapLink(String password,String useron){
LdapContextSource ldapContextSource = new LdapContextSource();
ldapContextSource.setBase(base);
ldapContextSource.setUrl(url);
ldapContextSource.setPassword(password);
ldapContextSource.setUserDn(useron);
ldapContextSource.setReferral(referral);
ldapContextSource.afterPropertiesSet();
DirContext ctx = null;
try {
// Ldap link
ctx = ldapContextSource.getReadOnlyContext();
log.info("username={},登录成功",useron);
return true;
} catch (AuthenticationException e) {
log.error("username={},身份验证失败!",useron,e);
return false;
} catch (CommunicationException e) {
log.error("username={},AD域连接失败!",useron,e);
return false;
}catch (Exception e) {
} finally {
if (ctx != null) {
try {
ctx.close();
} catch (NamingException | javax.naming.NamingException e) {
e.printStackTrace();
}
}
}
return false;
}
}