mon*_*yag 3 java ldap active-directory
我尝试使用LDAP身份验证.
public boolean login(String username, String password){
AndFilter filter = new AndFilter();
filter.and(new EqualsFilter("objectclass", "person")).and(new EqualsFilter("uid", username));
return ldapTemplate.authenticate(DistinguishedName.EMPTY_PATH, filter.toString(), password);
}
Run Code Online (Sandbox Code Playgroud)
因为我使用了ActiveDirectory服务器,所以我有这个例外:
javax.naming.NamingException:[LDAP:错误代码1 - 000020D6:SvcErr:DSID-03100754,问题5012(DIR_ERROR),数据0]; remaning name ='/'
在我看来,这个例外表明,因为我使用DistinguishedName.EMPTY_PATH
.
我该如何解决这个问题?
Sha*_*Fel 11
您遇到的实际错误如下:
//
// MessageId: ERROR_DS_MISSING_SUPREF
//
// MessageText:
//
// No superior reference has been configured for the
// directory service. The directory service is therefore
// unable to issue referrals to objects outside this forest.
//
#define ERROR_DS_MISSING_SUPREF 8406L
Run Code Online (Sandbox Code Playgroud)
这可以通过将您拥有的错误代码(000020D6)转换为十进制并检入winerror.h来找到.
在我看来,您需要为正在执行的搜索提供基本DN.您提供的那个(假设默认情况下,未指定时)是/,它不是有效的DN.如果您的域名是domain.example.com,则有效的基本DN将是DC = domain,DC = example,DC = com.
归档时间: |
|
查看次数: |
21317 次 |
最近记录: |