【问题标题】:x509.CertAndKeyGen is not found in JVM at OpenAM initial configuration在 OpenAM 初始配置的 JVM 中找不到 x509.CertAndKeyGen
【发布时间】:2014-09-04 04:36:52
【问题描述】:

在 OSX Mavericks、OpenAM 10.1.0、Tomcat8 和 JDK8 的组合中, OpenAM 初始 GUI 配置不成功,导致错误:

[点击] [错误] handleException: java.lang.RuntimeException: 调用公共方法时出错:public boolean com.sun.identity.config.wizard.Wizard.createConfig() 在 org.apache.click.util.ClickUtils.invokeMethod(ClickUtils.java:3335) 在 org.apache.click.util.ClickUtils.invokeListener(ClickUtils.java:2088) 在 org.apache.click.control.AbstractControl$1.onAction(AbstractControl.java:228) 在 org.apache.click.ActionEventDispatcher.fireActionEvent(ActionEventDispatcher.java:259) 在 org.apache.click.ActionEventDispatcher.fireActionEvents(ActionEventDispatcher.java:236) 在 org.apache.click.ActionEventDispatcher.fireActionEvents(ActionEventDispatcher.java:180) 在 org.apache.click.ClickServlet.performOnProcess(ClickServlet.java:746) 在 org.apache.click.ClickServlet.processAjaxPageEvents(ClickServlet.java:1860) 在 org.apache.click.ClickServlet.processPage(ClickServlet.java:559) 在 org.apache.click.ClickServlet.handleRequest(ClickServlet.java:383) 在 org.apache.click.ClickServlet.doGet(ClickServlet.java:276) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:723) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.forgerock.openam.validation.ResponseValidationFilter.doFilter(ResponseValidationFilter.java:44) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 com.sun.identity.setup.AMSetupFilter.doFilter(AMSetupFilter.java:99) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 在 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) 在 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606) 在 org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 在 java.lang.Thread.run(Thread.java:745) 原因:java.lang.ExceptionInInitializerError:在此 JVM 中找不到安全类,原因如下:sun.security.x509.CertAndKeyGen 在 org.opends.server.util.Platform$PlatformIMPL.(Platform.java:127) 在 org.opends.server.util.Platform.(Platform.java:80) 在 org.opends.server.util.CertificateManager.generateSelfSignedCertificate(CertificateManager.java:283) 在 org.opends.server.admin.AdministrationConnector.createSelfSignedCertifIfNeeded(AdministrationConnector.java:698) 在 org.opends.server.admin.AdministrationConnector.initializeAdministrationConnector(AdministrationConnector.java:181) 在 org.opends.server.core.ConnectionHandlerConfigManager.initializeAdministrationConnectorConfig(ConnectionHandlerConfigManager.java:350) 在 org.opends.server.core.DirectoryServer.initializeAdministrationConnector(DirectoryServer.java:2898) 在 org.opends.server.core.DirectoryServer.startServer(DirectoryServer.java:1401) 在 org.opends.server.util.EmbeddedUtils.startServer(EmbeddedUtils.java:88) 在 com.sun.identity.setup.EmbeddedOpenDS.startServer(EmbeddedOpenDS.java:545) 在 com.sun.identity.setup.EmbeddedOpenDS.setup(EmbeddedOpenDS.java:364) 在 com.sun.identity.setup.AMSetupServlet.setupEmbeddedDS(AMSetupServlet.java:813) 在 com.sun.identity.setup.AMSetupServlet.setupSMDatastore(AMSetupServlet.java:869) 在 com.sun.identity.setup.AMSetupServlet.configure(AMSetupServlet.java:945) 在 com.sun.identity.setup.AMSetupServlet.processRequest(AMSetupServlet.java:628) 在 com.sun.identity.config.wizard.Wizard.createConfig(Wizard.java:294) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:483) 在 org.apache.click.util.ClickUtils.invokeMethod(ClickUtils.java:3317) ... 30 更多

我也把JDK改成7或者Tomcat改成7,也没用。

由于以下原因,在此 JVM 中找不到安全类:sun.security.x509.CertAndKeyGen

我知道 JBoss 似乎已经修复了这个错误,但我不知道如何在我的环境下克服。

【问题讨论】:

    标签: jvm single-sign-on x509 openam


    【解决方案1】:

    CertAndKeyGen 类问题实际上是OPENDJ-1142,当配置器尝试设置嵌入式 OpenDJ(尚不支持 JDK8)时会发生这种情况。即便如此,OpenAM 还没有在 JDK8 上运行(目前甚至无法编译 - 主要是因为 OPENAM-141),所以你肯定需要使用 JDK7 和一个在 JDK7 上运行良好的容器。

    JDK7 和 Tomcat 7 设置实际上是受支持的,因此您可能需要提供有关安装尝试失败的原因和方式的更多信息。

    【讨论】:

      【解决方案2】:

      我们需要为 openam 部署准备 jboss,将以下内容添加到 jboss-deployment-structure.xml:

      <exclude-subsystems>
            <subsystem name="jaxrs" />
            <subsystem name="webservices" />
          </exclude-subsystems>
      
          <dependencies>
              <module name="sun.jdk" >
                  <imports>
                      <exclude-set>
                          <path name="com/sun/org/apache/xml/internal/security/transforms/implementations"/>
                      </exclude-set>
                  </imports>
              </module>
            <system>
              <paths>
                <path name="sun/security/x509" />
                <path name="com/sun/org/apache/xpath/internal" />
                <path name="com/sun/org/apache/xerces/internal/dom" />
                <path name="com/sun/org/apache/xml/internal/utils" />
              </paths>
            </system>
          </dependencies>
      

      【讨论】:

        猜你喜欢
        • 2012-05-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-06
        • 1970-01-01
        • 2020-02-05
        相关资源
        最近更新 更多