在与LDAP通信时始终获得Bad Credential

时间:2018-05-24 18:06:37

标签: spring-boot spring-security ldap spring-ldap spring-security-ldap

我在与LDAP通信时收到错误的凭据,

我已经设置了管理员用户(并且可以很好地登录到Windows Server 2012)并在服务器上安装了Active Directory域服务。 我不认为我的应用程序有任何问题,因为它与.ldif文件嵌入式弹簧一起正常工作,我也尝试使用下面打开的服务器,它也正常工作。

LDAP_Server_Details

我也在分享DC结构,如果我从代码中传递任何错误的信息,那么请纠正我。

DC_Structure

非常感谢任何帮助

配置

type AllowedTypes = string | number | ConstrainedClass;
type ConstrainedClass = { [key: string]: AllowedTypes };
class Test2 {
    [key: string]: AllowedTypes; // this line is needed
    public prop1: number;
}
class Test1 {
    [key: string]: AllowedTypes; // this line is needed
    public prop1: string;
    public prop2: number;
    public nestedProp: Test2;
}

function somefunction<T extends ConstrainedClass>(param: T) {
    return;
}

somefunction(new Test1());

1 个答案:

答案 0 :(得分:1)

即使Active Directory是一种LDAP,标准LDAP支持(在Spring Security中)也不起作用。相反,您应该使用专门的 ActiveDirectoryLdapAuthenticationProvider

@Bean
public ActiveDirectoryLdapAuthenticationProvider adProvider() {
    return new ActiveDirectoryLdapAuthenticationProvider("YOURDOMAIN", "ldap://test.local:389/");
}

@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth.authenticationProvider(adProvider());
}

请勿忘记将 YOURDOMAIN 更改为您要登录的域名。