Oracle Account
Manage your account and access personalized content.
Sign up for an Oracle Account
Sign in to Cloud
Access your cloud dashboard, manage orders, and more.
Sign up for a free trial
结合使用 Oracle IRM Web 服务与 Eclipse WTP 1.5.4
目的
在本教程中,您将使用 Eclipse Web 工具平台 (WTP) 编绎一组示例 Java 类,以演示如何使用 Oracle IRM Web 服务。
所需时间
大约 20-30 分钟。
单击
这里
下载 ZIP 文件格式的 OBE 和 OBE 支持文件。
主题
本教程包括下列主题:
查看屏幕截图
将鼠标置于此图标上 可以加载和查看本教程的所有屏幕截图。
(警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)
注:
此外,您还可以在下列步骤中将鼠标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。可以通过单击各个屏幕截图来将其隐藏。
概述
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 前提条件的详细信息。
-
http://www.eclipse.org/webtools/community/communityresources.php
,获得 Eclipse WTP Web 服务教程。
|
|
2.
|
双击
<Eclipse 安装文件夹>\eclipse.exe
启动 Eclipse。
|
|
3.
|
可访问经适当配置用于支持 IRM Web 服务的 Oracle IRM 服务器。本教程假设您使用由 IRM 开发团队托管、可访问互联网的 IRM 服务器,详细信息如下表。
注:
这一托管的开发 IRM 服务器仅用于评估 IRM Web 服务。它不是生产服务器,不应用于保护机密信息。
|
测试 URL
|
http://dev-irm01.sealedmedia.com/ping
在 Web 浏览器中键入该 URL,检验是否可以通过网络访问 IRM 开发服务器,以及该服务器是否在运行。您应当看到以下形式的简短返回页面:
[Oracle Development IRM Server,ukdevirm01.sm2.local,5.4 release 3 build 0,09 Aug 2007 08:55:13 UTC]
|
|
WSDL URL
|
http://dev-irm01.sealedmedia.com/sm/wsdl/oracleirm.wsdl
稍后要使用这一 URL 指明 Eclipse 查找 WSDL 合约的位置,WSDL 合约描述了 IRM Web 服务,但您也可以在 Web 浏览器中输入这一 URL 作为测试。
|
|
管理用户帐户
|
在开发 IRM 服务器上配置示例管理用户,赋予其运行示例的足够管理权限。要使用 IRM Web 服务,您必须首先使用该用户的用户名和凭证完成身份验证。
用户:"Sample Admin" 口令:“my!wordpass”
(无双引号,口令区分大小写)
|
|
最终用户帐户
|
在开发 IRM 服务器上配置一个示例最终用户,赋予其打开本教程中密封文档的权限,以及在本教程所用的 IRM 上下文之间重新密封文档的权限。您可以使用这些凭证完成 Oracle IRM 桌面的身份验证。
用户:"Sample User" 口令:“my!wordpass”
(无双引号,口令区分大小写)
|
|
联系人
|
如果在使用 Oracle IRM 开发服务器时遇到问题,请联系 Oracle IRM 产品管理团队。
|
如果您针对自己的 IRM 服务器实例运行本教程,则本教程末尾的示例表中列出了所需的管理权限和最终用户权限。
|
|
4.
|
本教程需要的文件包含在相关的 Oracle IRM Web 服务示例 ZIP 存档 (Eclipse.zip) 中。其中有 3 个文件集,位于 ZIP 存档的不同文件夹中(因此先将 ZIP 解压到临时文件夹更方便,这样可以更轻松地将文件复制到最终位置,而不用 ZIP 实用程序自动创建这些子文件夹):
- Oracle IRM Web 服务示例 — Eclipse.pdf — 位于 ZIP 存档的 DOC 文件夹中。这是您当前阅读的文档。
- ZIP 存档根文件夹中的一组 Java 类(如 DeleteUserExample.java)。这些是说明如何从 Java 调用 IRM Web 服务的示例文件。
- Sample.doc,位于 ZIP 存档的 doc 文件夹中。您可以在本教程中密封的一个示例 Word 文档,同时还说明了 IRM 的动态水印实现过程。
|
返回主题列表
配置 Eclipse WTP
您需要对 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
。
|
返回主题列表
创建新的 Eclipse 项目
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
。
注
:请准确遵循本教程使用的名称,以确保示例和生成的代码组件可以正确引用。
|
返回主题列表
创建 Web 服务代理类
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 中看到这些类。
|
返回主题列表
添加示例 IRM 客户端应用程序
Oracle IRM Web 服务客户端示例是简单的 Java 命令行应用程序,每个示例都说明了使用 Oracle IRM Web 服务的一个方面。
要将示例添加到 Eclipse 项目,并将它们“连接”到前面部分中生成的 Web 服务代理类,执行以下步骤:
|
1.
|
将 9 个示例 Java 文件解压到 Eclipse 项目文件夹,
如
<Eclipse 文件夹>\IRM-ws-client
。
|
|
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 服务文档和帮助中所述。
建议您按以下顺序运行示例。
|
参数(示例)
|
"Sample Admin" my!wordpass
|
|
参数
|
|
|
描述
|
服务请求使用提供的服务用户名和口令进行身份验证,然后列出一组服务用户有管理权限并可以查看的 IRM 上下文。
|
|
IRM 服务器配置
|
Two IRM contexts "Acquisition Alpha" and "Project X"
Sample Admin:ContextAPI.GetContext server-level admin right; RoleAPI.ListRightsByOwner admin right in contexts "Acquisition Alpha" and "Project X"
Sample User:Contributor roles in "Acquisition Alpha" and "Project X"
|
|
ListSealableContextsExample.java
|
|
参数(示例)
|
"Sample Admin" my!wordpass "Sample User"
|
|
参数
|
|
|
描述
|
服务请求使用提供的服务用户名和口令进行身份验证,然后列出一组目标用户有权“密封”内容的 IRM 上下文。
|
|
IRM 服务器配置
|
Two IRM contexts "Acquisition Alpha" and "Project X"
Sample Admin:ContextSealingServices.ListSealableContexts server-level admin right
Sample User:Contributor roles in "Acquisition Alpha" and "Project X"
|
|
参数(示例)
|
"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"
Sample Admin:SealingServices.GetSealableTypeFromExtension server-level admin right and SealingServices.SealContent admin right in "Acquisition Alpha" context
Sample User:Contributor role in "Acquisition Alpha" (to open and edit the sealed file)
|
|
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"
Sample Admin:SealingServices.GetSealableTypeFromExtension server-level admin right and SealingServices.SealContent admin right in the target "Project X" context.
Sample User:Contributor role in "Acquisition Alpha", with copy constraints enabling resealing to "Project X", and Contributor role in "Project X".
|
|
参数(示例)
|
"Sample User" my!wordpass "Acquisition Alpha" "c:\temp\sample.doc" "c:\temp\sample.sdoc"
|
|
参数
|
|
|
描述
|
服务请求使用提供的服务用户名和口令进行身份验证,然后密封输入文件 — 创建输出被密封的文件。
注:
该服务使用文件的完整路径名来引用它们,寄宿 Web 服务的 IRM 服务器必须能够解析这些路径名。文件内容不通过 Web 服务传送。 因此,该示例不能针对其他示例中使用的开发 IRM 服务器来运行。
|
|
IRM 服务器配置
|
IRM context "Acquisition Alpha"
Sample Admin:SealingServices.SealFileToFile admin right in "Acquisition Alpha" context.
|
|
参数(示例)
|
"Sample Admin" my!wordpass "c:\temp\sample.sdoc"
|
|
参数
|
|
|
描述
|
服务请求使用提供的服务用户名和口令进行身份验证,然后从密封的输入文件中提取 IRM 元数据(即,所谓的“偷窥”操作)。
注:
本例中使用的 IRM 服务实际上将未密封的文件通过网络发送到 IRM 服务器,并通过网络读取回密封的文件 — 因此 IRM 服务器可位于任何位置。其他 IRM 服务将通过网络传送文件名,这样 IRM 服务器需要能访问引用的文件共享。
|
|
IRM 服务器配置
|
Sample Admin:UnSealingServices.ExtractAttributesFromBytes server-level admin right
|
|
参数(示例)
|
"Sample Admin" my!wordpass "test user 42"
|
|
参数
|
|
|
描述
|
服务请求使用提供的服务用户名和口令进行身份验证,然后创建一个新的(已禁用)用户帐户。
注:
在共享的 IRM 开发服务器上,请遵循 "test user
nnn
" 命名规范。
|
|
IRM 服务器配置
|
Sample Admin:AccountAPI.SaveNewUserWithAuthentication server-level admin right
|
|
参数(示例)
|
"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
|
|
参数(示例)
|
"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 上的
面向服务的体系结构技术中心
返回主题列表
将鼠标置于该图标上可以隐藏所有的屏幕截图。