主题
Eclipse
在本教程中,您将使用 Eclipse Web 工具平台 (WTP) 编绎一组示例 Java 类,以演示如何使用 Oracle IRM Web 服务。
所需时间
大约 20-30 分钟。
单击这里下载 ZIP 文件格式的 OBE 和 OBE 支持文件。
本教程包括下列主题:
| 概述 | |
| 情景 | |
| 前提条件 | |
| 配置 Eclipse WTP | |
| 创建新的 Eclipse 项目 | |
| 创建 Web 服务代理类 | |
| 添加示例 IRM 客户端应用程序 | |
| 运行第一个示例 | |
| 运行其余示例 | |
| 总结 | |
| 相关信息 |
将鼠标置于此图标上 可以加载和查看本教程的所有屏幕截图。(警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)
注:此外,您还可以在下列步骤中将鼠标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。可以通过单击各个屏幕截图来将其隐藏。
Oracle 信息权限管理 (IRM) 是一个融合中间件安全服务,该服务通过加密来保护并跟踪机构的敏感文档和电子邮件的所有副本,而不管副本的数量、存储位置和使用位置 — 即使是将副本发送到防火墙以外。
在 Oracle IRM 术语中,加密文档和电子邮件的过程称为“密封”。Oracle IRM Server 公开了一组综合的 IRM Web 服务,以在内容管理信息库、协作 Web 应用程序、内容过滤/监视系统等流程中轻松实现“密封”的集成。
本教程介绍了如何使用 Eclipse Web 工具平台 (WTP) 开发环境从 Jave 调用 IRM Web 服务。
您希望将 Oracle IRM“密封”服务集成到您的 Java 应用程序中,例如,当文件上载到文件共享、内容管理信息库或协作工作区时自动将其“密封”。另一个示例是自动密封文件,以作为内容过滤、监视或数据泄密解决方案的强制操作。
开始本教程之前,您应该:
| 1. | 安装了 Eclipse Web 工具平台 (WTP 1.5.4): 有关 Eclipse WTP 的更多信息,请参阅: - http://www.eclipse.org/webtools/main.php,了解有关 Eclipse 设置和 WTP 前提条件的详细信息。
| ||||||||||||
| 2. | 双击 <Eclipse 安装文件夹>\eclipse.exe 启动 Eclipse。
| ||||||||||||
| 3. | 可访问经适当配置用于支持 IRM Web 服务的 Oracle IRM 服务器。本教程假设您使用由 IRM 开发团队托管、可访问互联网的 IRM 服务器,详细信息如下表。 注:这一托管的开发 IRM 服务器仅用于评估 IRM Web 服务。它不是生产服务器,不应用于保护机密信息。
如果您针对自己的 IRM 服务器实例运行本教程,则本教程末尾的示例表中列出了所需的管理权限和最终用户权限。
| ||||||||||||
| 4. | 本教程需要的文件包含在相关的 Oracle IRM Web 服务示例 ZIP 存档 (Eclipse.zip) 中。其中有 3 个文件集,位于 ZIP 存档的不同文件夹中(因此先将 ZIP 解压到临时文件夹更方便,这样可以更轻松地将文件复制到最终位置,而不用 ZIP 实用程序自动创建这些子文件夹): - Oracle IRM Web 服务示例 — Eclipse.pdf — 位于 ZIP 存档的 DOC 文件夹中。这是您当前阅读的文档。 | ||||||||||||
您需要对 Eclipse WTP 1.5.4 开发环境进行一些更改,以便与 Oracle IRM Web 服务一起工作。这些更改涉及将 Axis SOAP 库从 1.3 升级到 1.4,以及更改 Axis 配置设置。
要配置 Eclipse 以便与 Oracle IRM Web 服务兼容,执行以下步骤:
| 1. | Axis 1.3 SOAP 库的一个缺点是,它们不能处理 Oracle IRM Web 服务使用的 xsd:anyType 参数,所以您需要将库升级到 Axis 1.4。 您可以从 http://ws.apache.org/axis/ 获得 Axis 1.4 库。将 Axis 1.4 库存档(如 Windows 上的 axis-bin-1_4.zip)的内容解压到 Eclipse 安装的 plugins 文件夹中 - <Eclipse 安装文件夹>\plugins。您的存档实用程序应该将所有文件放在 axis-1_4 子文件夹中。
|
| 2. | 右键单击 Package Explorer 中的 IRM-ws-client 项目,然后单击 Properties。在项目的 Properties 对话框中,选择树视图中的 Java Build Path 和右窗格中的 Libraries 选项卡。选择 6 个 Axis 库,然后单击 Remove。 注:注意不要删除 JRE System Library。
|
| 3. | 在项目 Properties 对话框的 Java Build Path 属性中,单击 Add External JARs... 按钮。
|
| 4. | 在 JAR Selection 文件选择框中,选择您添加到 Eclipse 安装的 6 个 Axis 1.4 库(位于 <Eclipse 安装文件夹>\plugins\axis-1_4\lib 中)。您需要的 Jar 是 axis.jar、commons-discovery-0.2.jar、commons-logging-1.0.4.jar、jaxrpc.jar、saaj.jar 和 wsdl4j-1.5.1.jar。 单击 Open,然后单击 OK 关闭项目 Properties 对话框。
|
| 5. | 从 Window 菜单中选择 Preferences 项,选择 Web Services 节点,然后选择树视图中的 Axis Emitter 节点,并确保选中 Generate code for all elements, even unreferenced ones 复选框。 单击 OK。
|
Oracle IRM Web 服务示例是简单的 Java 命令行应用程序。在本教程中,您将创建一个简单的 Eclipse 项目,其中将包括示例文件,然后使用 Eclipse 将它们“连接”到 IRM Web 服务。
要创建 Eclipse 项目,执行以下步骤:
| 1. | 从 Package Explorer 上方的菜单按钮打开新组件下拉菜单,然后选择 Project... 项。
|
| 2. | 在 New Project 对话框中,选择 Java Project 节点并单击 Next。
|
| 3. | 在 New Java Project 对话框中,输入 IRM-ws-client 的 Project Name,然后单击 Finish。 注:请准确遵循本教程使用的名称,以确保示例和生成的代码组件可以正确引用。
|
Eclipse 可导入 IRM Web 服务的 WSDL 描述,并自动生成一组 Web 代理类,这些代理类可提供示例代码将调用的标准 Java 接口。随后,Web 代理类会隐藏将这些本地 Java 调用转换为远程 Web 服务调用所需的所有功能。
要导入 IRM WSDL 并生成 Web 代理类,执行以下步骤:
| 1. | 从 Eclipse 主窗口的 Run 菜单中,选择 Launch the Web Services Explorer 项。 单击 Web Services Explorer 窗格右上角的 WSDL Page 按钮(虽然该按钮看起来已禁用,但将鼠标移至其上可将其激活)。
|
| 2. | 单击 Web Services Explorer 中的 WSDL Main 节点,然后输入 Oracle IRM WSDL 文件的 URL。这是由 Oracle IRM Server 通过 HTTP 提供的,URL 格式为 http://<IRM Server 主机名>/sm/wsdl/oracleirm.wsdl。 单击 Go。
|
| 3. | Web Services Explorer 窗格应该立即显示 Oracle IRM Web 服务的绑定列表。
|
| 4. | 在 Web Services Explorer 的 Navigator 窗格中,单击 WSDL 节点,然后单击 Actions 窗格中的 Launch Web Service Wizard 工具栏按钮。
|
| 5. | 在 Launch Web Service Wizard 中,接受默认选择 Web Service Client 并单击 Go。
|
| 6. | 在 Web Service Client 对话框中,单击 Client project:WebServiceProject 链接。
|
| 7. | 在 Specify Client Project Settings 对话框中,从 Client project 选择框中选择 IRM-ws-client,然后单击 OK。
|
| 8. | 当您返回到 Web Service Client,单击 Finish。
|
| 9. | Eclipse 现在将分析 WSDL 并生成 Web 服务代理类,您可以在 Package Explorer 中看到这些类。
|
Oracle IRM Web 服务客户端示例是简单的 Java 命令行应用程序,每个示例都说明了使用 Oracle IRM Web 服务的一个方面。
要将示例添加到 Eclipse 项目,并将它们“连接”到前面部分中生成的 Web 服务代理类,执行以下步骤:
| 1. | 将 9 个示例 Java 文件解压到 Eclipse 项目文件夹,
|
| 2. | 在 Package Explorer 中,右键单击 IRM-ws-client 节点,并选择 Refresh (F5)。添加的示例 Java 文件应当出现在 Package Explorer 的(默认程序包)节点下。
|
| 3. | 如果您双击源文件 SealingFileExample.java,可以查看其代码,了解实例化并使用 Web 代理类是多么简单。
|
| 4. | 假设将 Eclipse 配置为自动编译(在 Project 主菜单中),您应当看见成功编译消息。生成的代理代码将生成许多有关无法引用本地变量的警告,您可以忽略它们。
|
Eclipse 中有许多运行和调试 Java 应用程序的方法,本教程介绍了其中之一。本部分将引导您完成运行 IRM Web 服务客户端示例应用程序 ListContextsExample.java 的步骤。随后,您可以按照类似过程运行其他示例。
要运行 ListContextsExample.java 示例,执行以下步骤:
| 1. | 在 Package Explorer 中,选择 ListContextsExample.java 节点,并从 Run As 下拉菜单中单击 Run... 菜单项。
|
| 2. | 在 Run 对话框中,选择 Arguments 选项卡。
|
| 3. | 在 Run 对话框的 Arguments 选项卡中,添加以下命令行(程序)参数: - "Sample Admin" — 这是 IRM Server 上的管理员帐户的用户名。注意,输入包含空格的参数时必须用引号括起。 - my!wordpass — 这是 "Sample Admin" 用户的关联口令。该参数区分大小写。 单击 Run。
|
| 4. | 如果一切顺利,ListContextsExample.java 示例应当执行,并将控制台输出(如下所示)传送到 Eclipse 控制台窗口。
|
| 5. | 要再次运行 ListContextsExample.java 示例,您只需从 Run As 下拉菜单中选择 ListContextsExample 项。
|
| 6. | ListContextsExample.java 使用 IRM Web 服务来恢复一组 IRM 上下文(分类),通过身份验证的用户可以查看这些上下文、上下文中定义的 IRM 角色、与上下文关联的离线时间以及在上下文中被指定角色的用户或组。
|
要运行其余示例,只需遵循前一部分的说明,为每个示例创建正确命名的运行配置。下表简要描述了每个示例及其需要的命令行参数。
仅在您希望针对自己的 IRM 服务器运行本教程时需要。
下表还包括了每个示例所需的 IRM 服务器配置,包括需要的最终用户和管理权限,如 IRM Web 服务文档和帮助中所述。
建议您按以下顺序运行示例。
| ListContextsExample.java |
| 参数(示例) | "Sample Admin" my!wordpass |
| 参数 | |
| 描述 | 服务请求使用提供的服务用户名和口令进行身份验证,然后列出一组服务用户有管理权限并可以查看的 IRM 上下文。 |
| IRM 服务器配置 | Two IRM contexts "Acquisition Alpha" and "Project X" |
| ListSealableContextsExample.java |
| 参数(示例) | "Sample Admin" my!wordpass "Sample User" |
| 参数 | |
| 描述 | 服务请求使用提供的服务用户名和口令进行身份验证,然后列出一组目标用户有权“密封”内容的 IRM 上下文。 |
| IRM 服务器配置 | Two IRM contexts "Acquisition Alpha" and "Project X" |
| SealingBytesExample.java |
| 参数(示例) | "Sample Admin" my!wordpass "Acquisition Alpha" "c:\temp\sample.doc" "c:\temp\sample.sdoc" |
| 参数 | |
| 描述 | 服务请求使用提供的服务用户名和口令进行身份验证,然后密封输入文件 — 创建输出被密封的文件(带有密封文件扩展名)。 本教程随附的示例 ZIP 存档提供了示例文件 sample.doc。将其复制到 c:\temp 文件夹中。您可以通过双击它(假设已安装了 Oracle IRM Desktop)并输入“Sample User”凭证(用户:"Sample User" 口令:“my!wordpass”),来打开密封文件。 注:本例中使用的 IRM 服务实际上将未密封的文件通过网络发送到 IRM 服务器,并通过网络读取回密封的文件 — 因此 IRM 服务器可位于任何位置。其他 IRM 服务将通过网络传送文件名,这样 IRM 服务器需要能访问引用的文件共享。 |
| IRM 服务器配置 | IRM context "Acquisition Alpha" |
| ResealingBytesExample.java |
| 参数(示例) | "Sample Admin" my!wordpass "Sample User" "Project X" c:\temp\sample.sdoc c:\temp\sample2.sdoc |
| 参数 | |
| 描述 | 服务请求使用提供的服务用户名和口令进行身份验证,然后将输入文件(假设已密封)重新密封到另一个上下文, 代表命名用户执行操作。随着文档在其生命周期中变得多少有些敏感时,通常要应用这一流程。 您可以重新密封在上面的 SealingBytes 示例中密封的文件。 注:本例中使用的 IRM 服务实际上将未密封的文件通过网络发送到 IRM 服务器,并通过网络读取回密封的文件 — 因此 IRM 服务器可位于任何位置。其他 IRM 服务将通过网络传送文件名,这样 IRM 服务器需要能访问引用的文件共享。 |
| IRM 服务器配置 | Two IRM contexts "Acquisition Alpha" and "Project X" |
| SealingFileExample.java |
| 参数(示例) | "Sample User" my!wordpass "Acquisition Alpha" "c:\temp\sample.doc" "c:\temp\sample.sdoc" |
| 参数 | |
| 描述 | 服务请求使用提供的服务用户名和口令进行身份验证,然后密封输入文件 — 创建输出被密封的文件。 注:该服务使用文件的完整路径名来引用它们,寄宿 Web 服务的 IRM 服务器必须能够解析这些路径名。文件内容不通过 Web 服务传送。 因此,该示例不能针对其他示例中使用的开发 IRM 服务器来运行。 |
| IRM 服务器配置 | IRM context "Acquisition Alpha" |
| PeekingExample.java |
| 参数(示例) | "Sample Admin" my!wordpass "c:\temp\sample.sdoc" |
| 参数 | |
| 描述 | 服务请求使用提供的服务用户名和口令进行身份验证,然后从密封的输入文件中提取 IRM 元数据(即,所谓的“偷窥”操作)。 注:本例中使用的 IRM 服务实际上将未密封的文件通过网络发送到 IRM 服务器,并通过网络读取回密封的文件 — 因此 IRM 服务器可位于任何位置。其他 IRM 服务将通过网络传送文件名,这样 IRM 服务器需要能访问引用的文件共享。 |
| IRM 服务器配置 | Sample Admin:UnSealingServices.ExtractAttributesFromBytes server-level admin right |
| SaveNewUserExample.java |
| 参数(示例) | "Sample Admin" my!wordpass "test user 42" |
| 参数 | |
| 描述 | 服务请求使用提供的服务用户名和口令进行身份验证,然后创建一个新的(已禁用)用户帐户。 注:在共享的 IRM 开发服务器上,请遵循 "test user nnn" 命名规范。 |
| IRM 服务器配置 | Sample Admin:AccountAPI.SaveNewUserWithAuthentication server-level admin right |
| EditUserExample.java |
| 参数(示例) | "Sample Admin" my!wordpass "test user 42" |
| 参数 | |
| 描述 | 服务请求使用提供的服务用户名和口令进行身份验证,然后更新已命名用户帐户的某些属性。 注: 您不能针对共享 IRM 开发服务器运行该示例,因为 "Sample Admin" 没有这一管理权限。 运行该示例将出现“You do not have rights for this operation”异常。 |
| IRM 服务器配置 | Sample Admin:AccountAPI.SaveChangesToUser server-level admin right |
| DeleteUserExample.java |
| 参数(示例) | "Sample Admin" my!wordpass "test user 42" |
| 参数 | |
| 描述 | 服务请求使用提供的服务用户名和口令进行身份验证,然后删除命名的用户帐户。 注: 您不能针对共享 IRM 开发服务器运行该示例,因为 "Sample Admin" 没有这一管理权限。 运行该示例将出现“You do not have rights for this operation”异常。 |
| IRM 服务器配置 | Sample Admin:AccountAPI.DeleteAccount server-level admin right |
在本教程中,您学习了如何:
| 使用一组简单的 Java 类来说明如何使用 Oracle IRM Web 服务并将它们导入 Eclipse。 | ||
| 根据 Oracle IRM 服务器发布的 WSDL 合约生成一组 Java Web 代理类。 | ||
| 将导入的 Java 示例“连接”到生成的代理类,然后可以调用远程 IRM Web 服务,而无需了解任何 Web 服务、SOAP 等。 | ||
| 大致了解 IRM Web 服务的结构,以及如何使用它们来“密封”文件并执行 IRM 管理操作(例如,添加新用户)。 | ||
要了解有关 Oracle 信息权限管理 (IRM) 和 Web 服务的更多信息,参见:
- OTN 上的 Oracle 信息权限管理
- OTN 上的 面向服务的体系结构技术中心