java - LDAP DirContext 搜索 - Perl 到 Java,返回不同的对象模型
问题描述
我在 CPAN 引用这段代码来执行 LDAP 中的搜索。当我运行这个脚本时,我可以看到对象模型;此外,我搜索的每个用户的模型都是相同的。 网络::LDAP::示例
使用 Perl 脚本检索的对象模型:
objectClass: top
person
organizationsperson
user
cn: someuser
sn: user
title: ENGINEER.SOFTWARE ENGINEERING
itDescription: Business Intelligence - DIS56
whenCreated:
20130419212146.0Z whenChanged: 20190819042554.0Z
现在我正在编写 Java 代码来使用 JNDI 建立 LDAP 连接,在这里,我看不到它的描述和标题等属性;此外,我搜索的每个用户的模型都不同 - 属性缺失或过多。
使用 JNDI 检索的对象模型:
[objectCategory]=[CN=Person,CN=Schema,CN=Configuration,DC=tester,DC=com]
[whenCreated]=[20130419212146.0Z]
有人可以告诉我为什么会这样吗?这是我的连接和搜索代码-
Hashtable<String, String> env = new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://ds.tester.com:3268");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, uName);
env.put(Context.SECURITY_CREDENTIALS, pwd);
DirContext context = new InitialDirContext(env);
SearchControls cons = new SearchControls();
cons.setSearchScope(SearchControls.SUBTREE_SCOPE);
NamingEnumeration <SearchResult> srch = context.search("ou=employees,dc=tester,dc=com","sAMAccountName=someuser",cons);
这是相关的 Perl 脚本 -
$ldap = Net::LDAP->new("ds.tester.com") or die "$@";
print "User : "; my $user = <STDIN>; chomp($user);
my $passwd = <STDIN>; chomp($passwd);
my $userToAuthenticate = "cn=$user,ou=employees,dc=tester,dc=com";
$mesg = $ldap->bind("$userToAuthenticate",password => "$passwd",version => 3 );
my ($ldap,$searchString,$attrs,$base) = @_ ;
if (!$base ) { $base = "DC=tester,DC=com"; }
if (!$attrs ) { $attrs = ['sAMAccountName' ]; }
my $result = $ldap->search (base => "$base",
scope => "sub",
filter => "$searchString",
attrs => $attrs
);
foreach $entry ($result->entries) { $entry->dump; }
解决方案
推荐阅读
- c++ - 在 C++ 中确定字符串的每个单词中的字母数量
- apache-kafka - 将 JSON 转换为 Avro 失败:无法将 JSON 转换为 Avro:未知联合分支
- html - 网络爬取:如何仅在文本和数字组合中检索数字
- unit-testing - 如何在 WebStorm 测试资源管理器的新选项卡中运行单个测试?
- url - Prestashop 重定向不准确的 url
- elasticsearch - Elasticsearch 高级别的客户端,Kubernetes 中的连接重置错误
- java - 将百分比数据mysql显示到textview android studio中
- sql - 避免 IIF 语句中的重复
- java - Java Collections.Sort 比较方法违反了它的一般约定
- php - PHP 正则表达式以字母或数字开头和结尾