本章包含以下主题:
OpenSSO 8.0 Update 2 可作为修补程序 TBS 提供。
在安装 OpenSSO 8.0 Update 2(或后续修补程序)前,请查看此文档中有关新功能、硬件和软件要求、问题和解决方法的信息。
OpenSSO 8.0 Update 2 包含一个 opensso.war 文件,您可使用以下方法进行安装:
修补现有 OpenSSO 8.0 部署:使用 Update 2 中的 ssopatch 实用程序修补现有的 OpenSSO 8.0 部署,如本章中所述。
注意 - Oracle 仅支持修补 OpenSSO 8.0 发行版本。例如,支持使用 OpenSSO 8.0 Update 2 修补 OpenSSO 8.0。
安装新 OpenSSO 8.0 Update 2 部署:安装和配置 OpenSSO 8.0 Update 2 opensso.war 文件,如《Sun OpenSSO Enterprise 8.0 Installation and Configuration Guide》中所述。
创建专用的新 WAR 文件:使用 createwar 脚本从 Update 2 opensso.war 文件创建以下新 WAR 文件之一:
仅 OpenSSO 管理控制台 WAR
Distributed Authentication UI Server WAR
仅 OpenSSO 服务器 WAR,无管理控制台
IDP 搜索服务 WAR
修补现有的专用 OpenSSO WAR 文件:使用 Update 2 中的 ssopatch 实用程序修补现有的专用 OpenSSO 8.0 WAR 文件,如《Sun OpenSSO Enterprise 8.0 Installation and Configuration Guide》中的第 23 章 “Patching OpenSSO Enterprise 8.0”中所述
如果您运行的是 Access Manager 7.1 或 Access Manager 7 2005Q4 并且要升级到 Update 2,请执行以下步骤:
将 Access Manager 7.x 升级到 OpenSSO 8.0,如《Sun OpenSSO Enterprise 8.0 Upgrade Guide》中所述。
应用 Update 2 修补程序,如本章中所述。
Sun 定期发布 OpenSSO 8.0 Update 2 的修补程序。有关这些修补程序的信息,请定期到这里检查。
为您的平台安装此修补实用程序,如安装 ssopatch 实用程序中所述。
获取有关现有 WAR 文件的信息,以确定现有 WAR 文件是否已经进行自定义或已经修改,如将 OpenSSO WAR 文件与其内部清单进行比较中所述。
将现有的 WAR 文件与 Update 2 WAR 文件进行比较,以返回在原始 WAR 中进行自定义的文件、在新 WAR 文件中更新的文件以及两个 WAR 版本之间添加或删除的文件,如比较两个 OpenSSO WAR 文件中所述。
备份并归档现有的 Opensso WAR 文件,如备份 OpenSSO WAR 文件中所述。
修补 OpenSSO WAR 文件,如修补 OpenSSO WAR 文件中所述。
运行 updateschema 脚本,如运行 updateschema 脚本中所述。
注意 - 如果您修补的是通过 opensso.war 生成的专用 WAR 文件(如仅 OpenSSO 服务器 WAR、仅管理控制台 WAR、Distributed Authentication UI Server 或 IDP 搜索服务 WAR),请参见修补专用的 OpenSSO WAR。
ssopatch 实用程序是 Java 命令行实用程序,在 Solaris 和 Linux 系统上以 ssopatch 提供,在 Windows 上以 ssopatch.bat 提供。
注意 - ssopatch 在 OpenSSO 8.0 Update 2 中的语法与在 OpenSSO 8.0 发行版本中相比已经进行相当大的更改。有关新语法,请参见运行 updateschema 脚本。
ssopatch 修补实用程序执行以下功能:
将 OpenSSO WAR 与其原始清单进行比较,以确定 WAR 文件是否已经进行自定义或已经修改
比较两个 OpenSSO WAR 文件,以确定两个文件之间的差异,包括对原始 WAR 文件进行的任何自定义以及在新 WAR 文件中进行的任何更改
为生成新修补的 OpenSSO WAR 文件所需的文件生成一个临时区域
下载并解压缩 OpenSSO 8.0 Update 2 ZIP 文件 (opensso_80U2.zip) 后,修补实用程序和相关文件位于 zip-root/opensso/tools 目录中的 ssoPatchTools.zip 文件中,其中 zip-root 是解压缩 opensso_80U2.zip 的位置。
ssopatch 实用程序使用清单文件确定特定 OpenSSO WAR 文件的内容。清单文件是包含以下内容的 ASCII(美国信息交换标准代码)文本文件:
标识 OpenSSO WAR 文件特定版本的字符串
OpenSSO WAR 文件中的所有单个文件,以及每个文件的校验和信息
清单文件通常命名为 OpenSSO.manifest 并存储在 OpenSSO WAR 文件的 META-INF 目录中。
ssopatch 实用程序将其结果发送到标准输出 (stdout)。如果愿意,也可以通过将输出重定向到文件捕获 ssopatch 输出。如果 ssopatch 成功完成,将返回零 (0) 退出代码。如果发生错误,ssopatch 将返回非零退出代码。
在安装 ssopatch 实用程序前,请执行以下操作:
下载并解压缩 OpenSSO 8.0 Update 2 ZIP 文件 (opensso_80U2.zip)。
将 JAVA_HOME 环境变量设置为指向 JDK 1.5 或更高版本。
在 zip-root/opensso/tools 目录中找到 ssoPatchTools.zip 文件,其中 zip-root 是解压缩 opensso_80U2.zip 的位置。
创建一个新目录以解压缩 ssoPatchTools.zip 文件。例如:ssopatchtools
将 ssoPatchTools.zip 文件解压缩到此新目录中。
如果要从当前目录之外的其他目录运行 ssopatch 实用程序而又不提供完整路径,请将此实用程序添加到 PATH 变量中。
下表介绍 ssoPatchTools.zip 中的文件。
文件或目录 |
说明 |
---|---|
README |
说明 ssopatch 的自述文件 |
/lib |
所需的 ssopatch JAR 文件 |
/patch |
updateschema 和 updateschema.bat 脚本及相关的 XML(可扩展标记语言)文件 |
/resources |
所需的属性文件 |
ssopatch 和 ssopatch.bat |
用于 Solaris、Linux 和 Windows 系统的实用程序 |
开始之前,请备份现有的 OpenSSO WAR 文件和配置数据:
将现有的 OpenSSO WAR 文件复制到一个安全的位置。以后,如果由于某种原因需要回退 Update 2,可以重新部署此 WAR 文件的备份副本。
备份配置数据,如《Sun OpenSSO Enterprise 8.0 Administration Guide》中的第 15 章 “Backing Up and Restoring Configuration Data”中所述。
ssopatch --help|-? [--locale|-l] ssopatch --war-file|-o [--manifest|-m] [--locale|-l] ssopatch --war-file|-o --war-file-compare|-c [--staging|-s] [--locale|-l] [--override|-r] [--overwrite|-w] |
其中,选项包括:
-war-file|-o 指定以前部署的 WAR 文件(如 opensso.war)的路径。
-manifest|-m 指定要创建的清单文件的路径。清单文件基于 -war-file|-o(如果提供此选项)指示的 WAR 文件生成。
-war-file-compare|-c 指定要与 -war-file|-o 指示的 WAR 文件进行比较的 WAR 文件的路径。
-staging|-s 指定将 OpenSSO WAR 中的文件写入其中的临时区域的路径。
-locale|-l 指定要使用的语言环境。如果未指定此选项,ssopatch 将使用默认的系统语言环境。
-override|-r 忽略两个 WAR 文件的版本检查。版本检查用于确定 WAR 文件的版本,并且只有版本兼容时才能继续。通过此选项,您可以忽略此检查。
默认值为 false(执行版本检查)。
-overwrite|-w 覆盖现有临时区域中的文件。默认值为 false(不覆盖文件)。
使用此过程可以确定自下载 OpenSSO WAR 文件以来,该文件是否已进行自定义或已经修改。
ssopatch 实用程序可生成新的内部清单文件,然后将此内部清单与原始 OpenSSO WAR 文件内的 META-INF 目录中存储的清单进行比较。
运行 ssopatch 以将 OpenSSO WAR 文件与其内部清单进行比较。例如:
./ssopatch -o /zip-root/opensso/deployable-war/opensso.war Generating Manifest for: /zip-root/opensso/deployable-war/opensso.war Comparing manifest of Internal (Enterprise 8.0 Build 6(200810311055)) against /zip-root/opensso/deployable-war/opensso.war (generated-200905050855) File not in original war (images/login-origimage.jpg) File updated in new war (images/login-backimage.jpg) File updated in new war (WEB-INF/classes/amConfigurator.properties) Differences: 3 |
以下示例表明对原始 WAR 文件进行的这些更改:
images/login-origimage.jpg 存在于 opensso.war 中,但未包含在原始清单中。
相对于原始清单,images/login-backimage.jpg 已在 opensso.war 中进行自定义。
相对于原始清单,WEB-INF/classes/amConfigurator.properties 文件已在 opensso.war 中进行自定义。
使用此过程可以比较两个 WAR 文件,以显示已经执行以下操作的文件:
已在原始 OpenSSO WAR 中进行自定义
已在新 OpenSSO WAR 文件中进行更新
已在两个 OpenSSO WAR 版本间添加或删除
运行 ssopatch 以比较两个 WAR 文件。在以下示例中,使用了 -override 选项来忽略两个 WAR 文件间的版本检查:
./ssopatch -o /zip-root/opensso/deployable-war/opensso.war -c /u1/opensso/deployable-war/opensso.war --override Generating Manifest for: /zip-root/opensso/deployable-war/opensso.war Original manifest: Enterprise 8.0 Build 6(200810311055) New manifest: Enterprise 8.0 Update 2 Build 6.1(200904300525) Versions are compatible Generating Manifest for: /u1/opensso/deployable-war/opensso.war Comparing manifest of /zip-root/opensso/deployable-war/opensso.war (generated-200905050919) against /u1/opensso/deployable-war/opensso.war (generated-200905050920) File updated in new war(WEB-INF/classes/amClientDetection_en.properties) File updated in new war(WEB-INF/classes/fmSAMLConfiguration_fr.properties) ... Differences: 1821 Customizations: 3 |
此示例显示已在新 WAR 文件中更新和自定义的文件。
使用此过程可以创建新的临时区域,在其中原始 WAR 文件将与新 WAR 文件进行合并。
此操作可比较每个 WAR 文件的清单,然后显示:
原始 WAR 文件中自定义的文件
新 WAR 文件中更新的文件
两个 WAR 文件版本间添加或删除的文件
ssopatch 然后会将相应的文件复制到一个临时目录中,您必须先在该目录中添加任何自定义内容,然后再创建和部署新修补的 WAR。
尽管 ssopatch 不会修改原始 opensso.war 文件,但建议您备份此文件,以供您在需要回退修补的 opensso.war 文件时使用。
运行 ssopatch 以创建临时区域。例如:
./ssopatch -o /zip-root/opensso/deployable-war/opensso.war -c /u1/opensso/deployable-war/opensso.war --override -s /tmp/staging Generating Manifest for: /zip-root/opensso/deployable-war/opensso.war Original manifest: Enterprise 8.0 Build 6(200810311055) New manifest: Enterprise 8.0 Update 2 Build 6.1(200904300525) Versions are compatible Generating Manifest for: /u1/opensso/deployable-war/opensso.war Comparing manifest of /zip-root/opensso/deployable-war/opensso.war (generated-200905051031) against /u1/opensso/deployable-war/opensso.war (generated-200905051032) File was customized in original, but not found in new war. Staging area using original war version (samples/saml2/sae/header.jsp) File was customized in original, but not found in new war. Staging area using original war version (WEB-INF/template/opends/config/upgrade/config.ldif.4517) File was customized in original, but not found in new war. Staging area using original war version (WEB-INF/template/opends/config/upgrade/schema.ldif.4517) Differences: 1813 Customizations: 0 |
在此示例中,/tmp/staging 是 ssopatch 复制文件的临时区域。
使用上一步骤的结果,根据需要更新临时区域中的文件。
使用下表确定在生成新修补的 WAR 文件前您可能需要对每个文件采取的操作。
ssopatch 结果 |
说明和所需操作 |
---|---|
File not in original war filename |
指示的文件未存在于原始 WAR 文件中,但存在于最新版本的 WAR 文件中。 操作:无 |
File updated in new war filename |
指示的文件存在于原始 WAR 文件和新 WAR 文件中,并且已在最新版本的 WAR 文件中进行了更新。在原始 WAR 文件中未进行任何自定义。 操作:无 |
File customized filename |
指示的文件存在于两个 WAR 文件中,并且已在原始版本的 WAR 文件中进行了自定义,但未在最新版本的 WAR 文件中进行更新。 操作:无 |
May require manual customization filename |
文件存在于两个 WAR 文件中,并且已在原始版本的 WAR 文件中进行了自定义,在最新版本的 WAR 文件中进行了更新。 操作:如果需要文件中的自定义内容,您必须手动将其添加到临时目录中的新更新的文件中。 |
File was customized in original, but not found in new war |
文件存在于原始 WAR 文件中,但未在新的 WAR 中。 操作:无 |
后续步骤
基于临时区域中的文件创建新 OpenSSO WAR 文件。例如:
cd /tmp/staging jar cvf /patched/opensso.war * |
其中,/patched/opensso.war 是新修补的 OpenSSO WAR 文件
使用原始的部署 URI,将 /patched/opensso.war 文件重新部署到 Web 容器。例如,/opensso
OpenSSO 配置更改。新 OpenSSO WAR 文件可能包含未存在于原始 WAR 文件中的配置更改。将单独为每个修补程序记录任何配置更改(如果有)。有关任何配置更改的详细信息,请查看修补程序文档和《Sun OpenSSO Enterprise 8.0 发行说明》。(即使在新 WAR 文件中没有配置更改,OpenSSO 清单文件中的版本字符串也会更改。)
如果需要回退修补的版本,请取消部署修补的 WAR 文件,然后重新部署原始 WAR 文件。
OpenSSO 清单文件是一个文本文件,用于标识特定发行版本的 WAR 文件中的所有单个文件,并包含每个文件的校验和信息。
使用此过程可以创建可在专用 OpenSSO WAR(如仅 OpenSSO 服务器 WAR、仅管理控制台 WAR、Distributed Authentication UI Server 或 IDP 搜索服务 WAR)中包含的清单文件。
运行 ssopatch 以创建 OpenSSO 清单文件。例如:
./ssopatch -o zip-root/opensso/deployable-war/opensso.war --manifest /tmp/manifest |
其中,opensso.war 是现有的 OpenSSO WAR 文件。
ssopatch 实用程序可在 /tmp 目录中创建名为 manifest 的新清单文件。
要允许修补 WAR 文件,请将此新清单文件复制到 opensso.war 文件内的 META-INF 目录中。例如:
mkdir META-INF cp /tmp/manifest META-INF jar uf opensso.war META-INF/manifest |
如果您以前创建了专用 OpenSSO WAR(如仅 OpenSSO 服务器 WAR、仅管理控制台 WAR、Distributed Authentication UI Server 或 IDP 搜索服务 WAR),那么可以使用 ssopatch 实用程序对其进行修补。
为专用的 OpenSSO WAR 创建清单文件,如创建 OpenSSO WAR 清单文件中所述。
注意:请在进行任何自定义之前,以原始 OpenSSO 8.0 opensso.war(与 Sun 最初提供时相同)为基础创建清单文件。如果在进行自定义之后创建清单,ssopatch 可能使用 Update 2 中的文件,而非经过自定义的文件,因此您需要在修补之后重新执行自定义。
基于 OpenSSO 8.0 Update 2 opensso.war 文件生成专用的 OpenSSO WAR,如《Sun OpenSSO Enterprise 8.0 Update 1 Release Notes》中的第 4 章 “Creating a Specialized OpenSSO Enterprise 8.0 Update 1 WAR File”中所述。
使用 ssopatch 实用程序将旧的 WAR 文件与新的 WAR 文件进行比较。
为新的专用 WAR 文件生成一个临时区域,如创建临时区域以修补 OpenSSO WAR 文件中所述。
重新部署新的专用 WAR 文件。
运行 ssopatch 后,请在 Solaris 或 Linux 系统上运行 updateschema.sh,或在 Windows 系统上运行 updateschema.bat。此脚本会更新 OpenSSO 服务器版本,添加新的默认服务器属性、添加 Update 2 中的错误修复和增强功能所需的新属性模式。必须运行 updateschema 才能更新服务器版本。
updateschema.sh 或 updateschema.bat 脚本需要 Update 2 版本(或更高版本)的 ssoadm 命令行实用程序。因此,在运行此脚本前,请先安装 Update 2 管理工具,如《Sun OpenSSO Enterprise 8.0 Update 1 Release Notes》中的第 3 章 “Installing the OpenSSO Enterprise 8.0 Update 1 Admin Tools”中所述。
updateschema.bat 脚本执行若干个 ssoadm 命令。因此,在 Windows 系统上运行 updateschema.bat 前,请为 amadmin 用户创建包含明文用户密码的密码文件。updateschema.bat 脚本会提示您输入密码文件的路径。在该脚本终止前,它将删除此密码文件。
更改到 patch-tools/patch 目录,其中 patch-tools 是解压缩 ssoPatchTools.zip 的位置。
运行 updateschema.sh 或 updateschema.bat。例如,在 Solaris 系统上:
./updateschema.sh
当脚本提示您时,请提供以下信息:
ssoadm 实用程序的完整路径(不包括 ssoadm 本身)。例如:/opt/ssotools/opensso/bin
amadmin 密码
updateschema.sh 或 updateschema.bat 脚本会向标准输出中写入任何消息或错误。
重新启动 OpenSSO 8.0 Update 2 Web 容器。
如果需要回退修补程序安装,只需重新部署原始的 opensso.war 文件(或专用的 WAR 文件)。