LDAP 错误代码如何 Map 到 JNDI 异常

LDAP 定义了一组状态代码,这些状态代码随 LDAP 服务器发送的 LDAP 响应一起返回(请参见RFC 2251)。在 JNDI 中,错误条件表示为NamingException的子类的已检查异常。请参见Naming Exceptions部分以获取 JNDI 异常类的概述。

LDAP 服务提供者将从 LDAP 服务器接收的 LDAP 状态代码转换为NamingException的适当子类。下表显示了 LDAP 状态代码与 JNDI 异常之间的 Map。

LDAP 状态码 Meaning exception 或行动
0 Success Report success.
1 Operations error NamingException
2 Protocol error CommunicationException
3 超过时间限制。 TimeLimitExceededException
4 超出大小限制。 SizeLimitExceededException
5 Compared false. DirContext.search()使用。不生成异常。
6 Compared true. DirContext.search()使用。不生成异常。
7 不支持身份验证方法。 AuthenticationNotSupportedException
8 需要强身份验证。 AuthenticationNotSupportedException
9 返回部分结果。 如果环境属性"java\.naming\.referral"设置为"ignore"或错误内容不包含引用,则抛出PartialResultException。否则,请使用内容来构建引荐。
10 Referral encountered. 如果环境属性"java\.naming\.referral"设置为"ignore",则忽略。如果属性设置为"throw",则抛出ReferralException。如果该属性设置为"follow",那么 LDAP 提供程序将处理引用。如果已超过"java\.naming\.ldap\.referral\.limit"属性,则抛出LimitExceededException
11 超出 管理 限制。 LimitExceededException
12 请求了不可用的关键 extensions。 OperationNotSupportedException
13 Confidentiality required. AuthenticationNotSupportedException
14 SASL 绑定正在进行中。 在身份验证期间由 LDAP 提供程序内部使用。
16 不存在这样的属性。 NoSuchAttributeException
17 未定义的属性类型。 InvalidAttributeIdentifierException
18 Inappropriate matching InvalidSearchFilterException
19 违反约束。 InvalidAttributeValueException
20 已经使用的属性或值。 AttributeInUseException
21 属性语法无效。 InvalidAttributeValueException
32 不存在这样的对象。 NameNotFoundException
33 Alias problem NamingException
34 无效的 DN 语法。 InvalidNameException
35 是一片叶子。 由 LDAP 提供程序使用;通常不会产生异常。
36 别名解除引用问题 NamingException
48 Inappropriate authentication AuthenticationNotSupportedException
49 Invalid credentials AuthenticationException
50 访问权限不足 NoPermissionException
51 Busy ServiceUnavailableException
52 Unavailable ServiceUnavailableException
53 不愿执行 OperationNotSupportedException
54 Loop detected. NamingException
64 Naming violation InvalidNameException
65 对象类违反 SchemaViolationException
66 禁止在非叶子上使用。 ContextNotEmptyException
67 在 RDN 上不允许。 SchemaViolationException
68 条目已存在。 NameAlreadyBoundException
69 禁止修改对象类。 SchemaViolationException
71 影响多个 DSA。 NamingException
80 Other NamingException
首页