在 WebLogic Server 上配置 OpenSSO Enterprise 失败,因为 weblogic.jar 绑定了较早的 ldapjdk.jar 文件。
Sun 提供了新的 ldapjdk.jar 文件,其中包含与安全性和性能相关的修复程序。必须为 WebLogic Server 9.2 和 WebLogic Server 10 提供以下解决方法。
解决方法。在 CLASSPATH 中,将 Sun ldapjdk.jar 放在 weblogic.jar 之前,如下所示:
在临时目录中,使用以下命令从 opensso.war 提取 ldapjdk.jar:
jar xvf opensso.war WEB-INF/lib/ldapjdk.jar
将上述提取的 ldapjdk.jar 复制到 WebLogic 的 lib 目录。
例如,对于 Solaris 或 Linux 系统中的 WebLogic Server 10,此目录为:BEA_HOME/weblogic_10.0/server/lib
对于 Windows 系统中的 WebLogic Server 9.2,此目录为:BEA_HOME\weblogic92\server\lib
将此 ldapjdk.jar 的路径添加到现有 classpath 之前,方法是编辑用于启动 WebLogic Server 的启动脚本。在以下示例中,BEA_HOME 是安装 WebLogic Server 的位置。
对于 Windows 系统中的 WebLogic 9.2,编辑:
BEA_HOME\weblogic92\samples\domains\wl_server\bin\startWebLogic.cmd
将 set CLASSPATH=%CLASSPATH%;%MEDREC_WEBLOGIC_CLASSPATH% 更改为:
set CLASSPATH=BEA_HOME\weblogic92\server\lib\ldapjdk.jar;%CLASSPATH%;%MEDREC_WEBLOGIC_CLASSPATH%
对于 Windows 系统中的 WebLogic 10,编辑:
BEA_HOME\wlserver_10.0\samples\domains\wl_server\bin\startWebLogic.cmd
将 set CLASSPATH=%CLASSPATH%;%MEDREC_WEBLOGIC_CLASSPATH% 更改为:
set CLASSPATH= BEA_HOME\wlserver_10.0\server\lib\ldapjdk.jar;%CLASSPATH%;%MEDREC_WEBLOGIC_CLASSPATH%
对于 Solaris 或 Linux 系统中的 WebLogic 9.2 MP2,编辑:
/bea/weblogic92/samples/domains/wl_server/bin/ startWebLogic.sh
或
/usr/local/bea/user_projects/domains/base_domain/bin/startWebLogic.sh
将 CLASSPATH="${CLASSPATH}${CLASSPATHSEP}${MEDREC_WEBLOGIC_CLASSPATH}" 更改为:
CLASSPATH= "BEA_HOME/weblogic92/server/lib/ldapjdk.jar${CLASSPATH}${CLASSPATHSEP}${MEDREC_WEBLOGIC_CLASSPATH}" |
对于 Solaris 或 Linux 系统中的 WebLogic 10,编辑:
/bea/wlserver_10.0/samples/domains/wl_server/bin/startWebLogic.sh
或
/bea/user_projects/domains/wl10_domain/bin/startWebLogic.sh
将 CLASSPATH="${CLASSPATH}${CLASSPATHSEP}${MEDREC_WEBLOGIC_CLASSPATH}" 更改为:
CLASSPATH= "BEA_HOME/wlserver_10.0/server/lib/ldapjdk.jar${CLASSPATH}${CLASSPATHSEP}${MEDREC_WEBLOGIC_CLASSPATH}"
重新启动服务器。
配置 OpenSSO Enterprise。
如果正在使用配置程序配置 WebLogic Server 9.2 MP2 或 10,并且完成配置花费的时间超过 600 秒,则会将以下错误返回到终端、WebLogic Server 域和服务器日志:
<Error> <WebLogicServer> <BEA-000337> <[STUCK] Exe cuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)' has been busy for "681" seconds working on the request "Http Request: /opensso/setup/setSetup Progress", which is more than the configured time (StuckThreadMaxTime) of "600" seconds. Stack trace: ...
产生此错误是由于 WebLogic Server 超过了其“阻塞线程最长时间:”的默认值:600 秒。
解决方法。如果配置程序没有响应,则重新启动。同时,考虑将 WebLogic Server 的“阻塞线程最长时间”的值从默认的 600 秒更改为更大的值,例如 1200 秒。使用 WebLogic 控制台更改该值(base_domain >“环境”>“服务器”>“管理服务器”>“配置/调节”)。
在 WebLogic Server 8.1 中,为 ID-WSF 配置的 opensso-client-jdk14.war 会在查找服务时返回错误。
解决方法。在 weblogic-home/jdk142_08/jre/lib/ 下添加以下 JAR 文件:jax-qname.jar、namespace.jar、relaxngDatatype.jar、xalan.jar 和 xsdlib.jar。
xalan.jar 文件位于 opensso.war 的 WEB-INF/lib 目录。其他文件位于 opensso-client-jdk14.war 的 WEB-INF/lib 目录中。
该问题仅在以下情况出现:
配置数据存储库为 Sun Java System Directory Server。
尝试安装多台服务器。
amadmin 密码与 Directory Server 绑定 dn 密码不同。
解决方法。该解决方法包含两个部分:
确保配置 Directory Server 绑定 dn 密码与 amadmin 密码相同。
配置第二台其他 OpenSSO Enterprise 服务器。要安装第二台服务器并指向第一台 OpenSSO Enterprise 服务器的配置目录,只需访问第二台 OpenSSO Enterprise 服务器的“配置程序”页面,并在第 1 步和第 2 步中输入 amadmin 密码、Cookie 域以及其他详细信息。
不要在第 3 步中选择“添加到现有部署”。而是选择第一个实例选项,并提供与第一台服务器相同的 Directory Server 名称、端口、DN、密码以及加密密钥。然后按照常规处理配置。
在控制台添加高级属性导致 OpenSSO Enterprise 服务器返回错误。该问题在添加高级配置属性后发生。
解决方法。如果在控制台中更改了默认服务器配置,则必须重新启动 OpenSSO Enterprise 服务器 Web 容器。
如果将 Oracle Application Server 10g 10.1.3.1 版作为 Web 容器,则会出现异常错误,导致 OpenSSO Express 配置失败。
解决方法。配置 OpenSSO 前,向目标 Oracle Application Server 10g 服务器实例的“服务器属性”添加以下 JVM 选项:
-Doc4j.jmx.security.proxy.off=true
OpenSSO Enterprise 使用不合格的发件人名称 Identity-Server 提交电子邮件通知,造成在日志中返回错误条目。
解决方法。在以下文件中将发件人名称从 Identity-Server 更改为 Identity-Server@hostname.domainname:
在 amPasswordResetModuleMsgs.properties 中,更改 fromAddress.label。
在 amAuth.properties 中,更改 lockOutEmailFrom。