Simple

“简单”身份验证包括向 LDAP 服务器发送 Client 端(用户)的标准 DN 和 Client 端的明文密码(请参阅RFC 2251RFC 2829)。由于可以从网络读取密码,因此该机制存在安全问题。为避免以这种方式公开密码,您可以在加密通道(例如 SSL)中使用简单的身份验证机制,前提是 LDAP 服务器支持该机制。

LDAP v2 和 v3 均支持简单身份验证。

要使用简单的身份验证机制,必须按如下所示设置三个身份验证环境属性。

  • Context.SECURITY_AUTHENTICATION.

    • 设置为"simple"
  • Context.SECURITY_PRINCIPAL.

    • 设置为正在验证的实体的标准 DN(例如"cn=S\. User, ou=NewHires, o=JNDITutorial")。类型为java\.lang\.String
  • Context.SECURITY_CREDENTIALS.

    • 设置为主体的密码(例如"mysecret")。它的类型为java\.lang\.Stringchar数组(char\[\])或byte数组(byte\[\])。如果密码是java\.lang\.Stringchar数组,则对于 LDAP v3 使用 UTF-8 进行编码,对于 LDAP v2 使用 ISO-Latin-1 进行编码以传输到服务器。如果密码是byte\[\],那么它将直接发送到服务器。

请参阅本节前面的example,它说明了如何使用简单身份验证。


注意: 如果您为Context\.SECURITY_CREDENTIALS环境属性提供一个空字符串,一个空byte/char数组或null,则认证机制将为"none"。这是因为 LDAP 要求密码必须为非空才能进行简单身份验证。如果未提供密码,则协议会自动将认证转换为"none"