匿名

原文: https://docs.oracle.com/javase/tutorial/jndi/ldap/anonymous.html

如上所述,如果未设置认证环境属性,则默认认证机制为“无”。如果客户端将 Context.SECURITY_AUTHENTICATION环境属性设置为“无”,则认证机制为“无”和所有其他身份验证环境属性被忽略。您可能希望仅显式执行此操作,以确保忽略可能已设置的任何其他身份验证属性。在任何一种情况下,客户端都将被视为匿名客户端。这意味着服务器不知道或不关心客户端是谁,并且将允许客户端访问(读取和更新)任何已配置为可由任何未经身份验证的客户端访问的数据。

由于命名和目录操作课程中的任何目录示例都没有设置任何身份验证环境属性,因此所有这些都使用匿名身份验证。

这是 an example 明确地将Context.SECURITY_AUTHENTICATION属性设置为“无”(即使这样做并非严格必要,因为这是默认值) 。

  1. // Set up the environment for creating the initial context
  2. Hashtable<String, Object> env = new Hashtable<String, Object>();
  3. env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
  4. env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=JNDITutorial");
  5. // Use anonymous authentication
  6. env.put(Context.SECURITY_AUTHENTICATION, "none");
  7. // Create the initial context
  8. DirContext ctx = new InitialDirContext(env);
  9. // ... do something useful with ctx