当前位置: 首页 > 知识库问答 >
问题:

Java检索备选Ldap属性名称

冷宏茂
2023-03-14

这个问题,在一个例子上解释:

用户指定读取属性“State orProvinceName”。Ldap将其处理为“st”。返回的Searchresult将包含以'st'作为键的key=>值对。如果我查找“state orprovinceName”,这显然是找不到的。我想要那个'st'键--但我不想手动编码替代LDAP字段名称的映射。相关代码部分:

Attributes ldapAttributes = foundContact.getAttributes();
Attribute wantedAttribute = ldapAttributes.get(ldapFieldName);

说明:“Found Contact”是SearchResult,我将其属性存储在“LDAP属性”中。“LDAP fieldname”是配置文件中指定的用户名称(如“state orprovincename”),我尝试获取此属性并将其存储在“wanted attribute”中。如果不包含'state orprovinceName',则'wanted attribute'当然为null。但是由于'st'存在,我不希望它为null;)

在给定属性的一个名称的情况下,是否有一些“简单”的方法来检索所有替代名称的列表?

感谢您抽出时间!

共有1个答案

唐星晖
2023-03-14

RFC的方法是在条目的subschemaSubentry引用的模式定义中定位属性定义。(RFC 4512中的p32)

例如。OpenLDAP将此信息存储在cn=subschema中。不幸的是,这个条目使用了您首先必须自己解析的属性定义格式:

attributetype ( 2.5.4.8 
    NAME ( 'st' 'stateOrProvinceName' ) 
    DESC 'RFC2256: state or province which this object resides in' 
    SUP name ) 

IIRC/Maybe Unboundid的LDAP SDK现在有了一个用于此目的的解析器。

 类似资料:
  • 问题内容: 如何在带注释的方法上检索注释的值? 我有: 问题答案: 获取实例。 获取注释。 获取注释属性值。 就像是: 当然,您需要捕获/处理适当的异常。上述假定您确实是从当前类检索方法(替换用其他方式)和有关方法是公共的(使用,如果事实并非如此)

  • 问题内容: 我有一个Java对象’ChildObj’,它是从’ParentObj’扩展而来的。现在,是否可以使用Java反射机制来检索ChildObj的所有属性名称和值,包括继承的属性? Class.getFields为我提供了公共属性的数组,而Class.getDeclaredFields为我提供了所有字段的数组,但是它们都不包含继承的字段列表。 有没有办法检索继承的属性呢? 问题答案: 不,你

  • 如何使用ArrayList检索Student类的单个属性,或者检查列表中是否存在“AAA ”?

  • 问题内容: 我正在将一些实体保存到Mongo数据库中,这些实体具有将UTC设置为时区的Joda DateTime属性。虽然保存工作正常,并且在集合中看到具有正确值的属性,但是一旦我通过Java检索到实体,时区就会再次设置为UTC + 2。 在集合中: 我正在使用Spring-Data-MongoDB访问数据库。 我最终得到了这一点: 有没有办法告诉Mongo返回存储在日期中的时区? 提示表示感谢,

  • 我和这里的其他几个问题有同样的问题,没有一个真正得到回答;也就是说,对于CAS4.x(4.2.6),我无法获得LDAP属性返回给客户机应用程序。 问题1这似乎是矫枉过正;自定义代码来解决什么是一个“简单”的问题。 问题2已经这样做了,但它不起作用。 更新#2 我做了更多的测试,但还是不成功。我认为,这归结于LdapAuthenticationHandler的principalAttributeMa

  • 本文向大家介绍JavaScript 从对象检索属性,包括了JavaScript 从对象检索属性的使用技巧和注意事项,需要的朋友参考一下 示例 性能特点: 可以从对象检索的属性可能具有以下特征, 可数 不可数 拥有 在使用创建属性时,我们可以设置其特征(“ own”除外)。在对象的直接级别而非原型级别()可用的属性称为自己的属性。Object.defineProperty(ies)__proto__