快速业务通道

在Apache目录服务器中存储Java对象,第2部分:(上) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
实现的一部分的对象工厂的名称。这个对象工厂创建了 Context 对象,可以将这个对象与 ApacheDS 中的命名上下文一起使用。

因为使用基于 LDAP 的 JNDI 实现,所以可以指定 com.sun.jndi.ldap.LdapCtxFactory 作为这个属 性的值。正如您可以猜到的,com.sun.jndi.ldap.LdapCtxFactory 类构建的 Context 对象能够根据 LDAP 协议与 ApacheDS 进行通信。

清单 2 中的第二个名称-值对是 java.naming.provider.url=ldap://localhost:389/ou=system。 java.naming.provider.url 属性指定了要处理的完整目录上下文的 URL。

完整目录上下文包含两个组件:一个组件是 URL,ApacheDS 正在其指示的位置上进行侦听,另一个组 件是命名上下文,ApacheDS 在该上下文中工作。字符串 ldap://localhost:389/ 指定 ApacheDS 在其指 示的位置上进行侦听的 URL。字符串的其余部分(ou=system)指定要处理的命名上下文。

第三个名称-值对是 java.naming.security.authentication=simple。这个属性指定 ApacheDS 进行 用户身份验证时使用的安全强度。这个属性可以是以下三个值之一:none、simple 或 strong。

如果选择 “none”,则 ApacheDS 不使用身份验证,任何人都可以不指定口令就进行登录。

如果选择 “simple”,则 ApacheDS 采用基于口令的简单身份验证,这意味着口令以明文方式在网络 上传递。

如果选择 “strong”,那么用户口令以散列值形式(而不是明文形式的实际口令)传递给 ApacheDS 进行身份验证。

ApacheDS 的当前版本不支持 “strong” 级的身份验证。

在Apache目录服务器中存储Java对象,第2部分:(上)(3)

时间:2011-08-13 IBM Bilal Siddiqui

清单 2 中的第四个名称-值对是 java.naming.security.principal=uid=admin,ou=system。这个属性 指定了要登录到 ApacheDS 的用户的 DN。(我使用 ApacheDS 管理员的 DN(uid=admin,ou=system)作 为这个属性的值。)

我们已经在 清单 2 中查看了 ApacheDS.properties 文件中的 4 个名称-值对。现在再来看一下 清 单 1 中的步骤 1 ,在这一步骤中,将把属性文件读入 Properties 对象中。不久,在处理 JNDI 时将会 使用这个 Properties 对象。

设置用户口令

还需要在 Properties 对象中包含用户的口令。但是真正的应用程序通常不会在配置文件中存储用户 口令;它会通过 GUI 接收用户的口令。在 清单 1 中,我将口令设为 java.naming.security.credentials 属性的值。这个属性实际上接收一个证明用户身份的凭证。可能有 多种凭证(例如,口令或 Kerberos 票据);对于本文,我使用基于口令的身份验证。

所有属性均已设置,可以使用 Properties 对象了。

步骤 2. 获得 DirContext 对象

接下来,实例化叫做 InitialDirContext 的类。这个类是 JNDI 的一部分,该类用于公开叫做 DirContext 的接口。InitialDirContext 的构造函数接受上面讨论的 Properties 对象。

InitialDirContext 对象能够执行您想在 ApacheDS 上执行的所有目录操作,包括存储新对象、搜索 已经存储的对象、向现有对象添加属性,等等。

DirContext 接口

DirContext 接口扩展了 Context 接口。Context 接口表示命名上下文,DirContext 接口则提供与添 加、删除和管理命名上下文有关的属性的功能。

简言之,Context 接口提供命名功能,DirContext 接口扩展命名功能,添加对属性的支持。命名和属 性功能共同构成了目录服务。

您可能会说 InitialDirContext 对象是由工厂对象实例化的 DirContext 对象的包装器。在这个示例 中,InitialDirContext 的构造函数使用了 清单 2 的第一个属性指定的上下文工厂对象(即 com.sun.jndi.ldap.LdapCtxFactory)。工厂对象实例化了一

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号