java.lang.Object
javax.naming.ldap.BasicControl
javax.naming.ldap.SortControl
- 所有已实现的接口:
Serializable
,Control
请求搜索操作的结果在返回之前由 LDAP 服务排序。排序标准是使用一个或多个排序键的有序列表以及关联的排序参数来指定的。搜索结果在 LDAP 服务上根据排序控件中提供的参数进行排序,然后返回给请求者。如果服务不支持排序(并且排序控件被标记为关键),则不执行搜索操作并返回错误。
以下代码示例显示了如何使用该类:
// Open an LDAP association
LdapContext ctx = new InitialLdapContext();
// Activate sorting
String sortKey = "cn";
ctx.setRequestControls(new Control[]{
new SortControl(sortKey, Control.CRITICAL) });
// Perform a search
NamingEnumeration results =
ctx.search("", "(objectclass=*)", new SearchControls());
// Iterate over search results
while (results != null && results.hasMore()) {
// Display an entry
SearchResult entry = (SearchResult)results.next();
System.out.println(entry.getName());
System.out.println(entry.getAttributes());
// Handle the entry's response controls (if any)
if (entry instanceof HasControls) {
// ((HasControls)entry).getControls();
}
}
// Examine the sort control response
Control[] controls = ctx.getResponseControls();
if (controls != null) {
for (int i = 0; i < controls.length; i++) {
if (controls[i] instanceof SortResponseControl) {
SortResponseControl src = (SortResponseControl)controls[i];
if (! src.isSorted()) {
throw src.getException();
}
} else {
// Handle other response controls (if any)
}
}
}
// Close the LDAP association
ctx.close();
...
此类为 RFC 2891 中定义的服务端排序实现 LDAPv3 请求控制。控件的值具有以下 ASN.1 定义:
SortKeyList ::= SEQUENCE OF SEQUENCE { attributeType AttributeDescription, orderingRule [0] MatchingRuleId OPTIONAL, reverseOrder [1] BOOLEAN DEFAULT FALSE }
- 自从:
- 1.5
- 参见:
-
字段摘要
字段在类 javax.naming.ldap.BasicControl 中声明的字段
criticality, id, value
在接口 javax.naming.ldap.Control 中声明的字段
CRITICAL, NONCRITICAL
-
构造方法总结
构造方法构造方法描述SortControl
(String[] sortBy, boolean criticality) 构造一个控件以按升序对属性列表进行排序。SortControl
(String sortBy, boolean criticality) 构造一个控件以按升序对单个属性进行排序。SortControl
(SortKey[] sortBy, boolean criticality) 构造一个控件以对排序键列表进行排序。 -
方法总结
在类 javax.naming.ldap.BasicControl 中声明的方法
getEncodedValue, getID, isCritical
-
字段详细信息
-
OID
服务端排序控件分配的对象标识符是 1.2.840.113556.1.4.473。- 参见:
-
-
构造方法详细信息
-
SortControl
构造一个控件以按升序对单个属性进行排序。将使用为与指定属性一起使用而定义的排序匹配规则执行排序。- 参数:
sortBy
- 排序依据的属性 ID。criticality
- 如果为真,则服务必须遵守控制并返回按请求排序的搜索结果,否则拒绝执行搜索。如果为 false,则服务无需遵守该控制。- 抛出:
IOException
- 如果在将提供的参数编码到控件中时遇到错误。
-
SortControl
构造一个控件以按升序对属性列表进行排序。将使用为与每个指定属性一起使用而定义的排序匹配规则来执行排序。- 参数:
sortBy
- 要排序的属性 ID 的非空列表。该列表按排序键优先级从高到低的顺序排列。criticality
- 如果为真,则服务必须遵守控制并返回按请求排序的搜索结果,否则拒绝执行搜索。如果为 false,则服务无需遵守该控制。- 抛出:
IOException
- 如果在将提供的参数编码到控件中时遇到错误。
-
SortControl
构造一个控件以对排序键列表进行排序。每个排序键指定排序顺序和要使用的排序匹配规则。- 参数:
sortBy
- 用于排序的非空键列表。该列表按排序键优先级从高到低的顺序排列。criticality
- 如果为真,则服务必须遵守控制并返回按请求排序的搜索结果,否则拒绝执行搜索。如果为 false,则服务无需遵守该控制。- 抛出:
IOException
- 如果在将提供的参数编码到控件中时遇到错误。
-