【问题标题】:Glassfish Admin Console loading blank pageGlassfish 管理控制台加载空白页
【发布时间】:2013-02-03 01:36:24
【问题描述】:

我在不同服务器上四个相同(至少理论上如此)配置的域之一上登录 Glassfish 3.1.2 的管理控制台时遇到问题。当我登录不起作用的那个时,我会被重定向到一个空白页面:

https://{server}:{管理端口}/j_security_check

它伴随着这条日志消息:

[#|2013-02-18T09:58:02.912-0500|SEVERE|glassfish3.1.2|org.glassfish.admingui|_ThreadID=20;_ThreadName=Thread-2;|javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: signature check failed; javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: signature check failed; restRequest: endpoint=https://localhost:9048/management/domain/anonymous-user-enabled attrs={} method=GET|#]

其他信息:

我启用了安全管理,并且禁用了匿名用户。

我可以使用相同的用户/密码请求 https://{server}:{admin port}/management/domain 并成功拉起 REST 接口。请求 /management/domain/enable-anonymous-user 确实会触发相同的问题(空白页、记录错误)。

我可以使用相同的用户/密码运行“asadmin -p {admin port}”并成功运行命令行命令。

我似乎记得有一次跟踪到管理控制台试图从 sun.com 域上的服务器中提取一个文件,该文件的 SSL 证书已过期,但我似乎找不到我当时申请的解决方案。

我尝试使用其中一台正在运行的服务器中的 cacerts.jks 文件,但没有帮助。

我在 keystore.jks 中的 s1as 证书的到期日期还有 8 年。

服务器上的日期/时间设置正确。

感谢您的任何建议。

史蒂夫

【问题讨论】:

  • 尝试比较 domain.xml 也许你会在那里找到一些东西。
  • 我遇到了同样的错误。保留我的 SSL,但更改了 Domain.xml 并将 admin-listener 更改回 s1as。我没有写答案,因为我不是 100% 确定这个过程,也不是它背后的逻辑。
  • @blo0p3r 你找到解决办法了吗?我得到同样的错误
  • @Abhi 到目前为止还没有具体的内容。 domain.xml 文件一直都是这样。有时只需重新启动即可修复它。我希望我能找到更确定的东西。
  • @blo0p3r:我的问题是因为默认的 SSL 证书。我对导致此问题的默认 SSL 证书进行了一些更改。我不知道它是如何修复的,我只是再次对证书进行了相同的更改,然后它就开始工作了。

标签: ssl console glassfish admin


【解决方案1】:

当我启用“默认主体到角色映射”时,我遇到过这种情况:

启用此功能并重新启动域后,我永远无法再次登录。我不得不更改 domain.xml 上的以下行(域已停止):

<security-service default-principal-password="admin" activate-default-principal-to-role-mapping="true" default-principal="admin">

到这里:

<security-service>

【讨论】:

  • 我刚刚查看了我的 domain.xml 文件,并没有找到对该设置的任何引用,所以大概这不是我的问题。尽管可能有一些类似的选择让我感到悲伤。至少,这给了我一些值得研究的东西。谢谢。
  • 非常感谢各位。它解除了我的担心。
  • 你在这个特定答案上使用的是什么版本?
  • 3.1.2.2(构建 5)
【解决方案2】:

这可能是this bug report 中描述的问题。

Anissa Lam 在 2011 年 3 月 3 日写道:

In v2, you enable https by just simply enable security on the admin-listener.
In v3, you have to run the enable-secure-admin command, and then restart the server. Then you can access the console by https, and http will also be redirected to https.
%asadmin start-domain 
%asadmin enable-secure-admin
%asadmin stop-domain 
%asadmin start-domain
then launch GUI.
Please do the above and if you still have problem, reopen the bug. thanks

这是给我造成的错误。

【讨论】:

  • 谢谢!!这为我省去了很多麻烦。 :)
  • 我已经这样做了,但是它说“您的连接不是私有的”,为什么要改为https?
【解决方案3】:

您好,如果您从未找到解决此问题的方法。我可以通过在我的应用程序中启用默认主体到角色映射设置来解决这个问题,方法是将以下几行添加到您的 WEB-INF 文件夹中的 glassfish-web.xml 文件中。

  <security-role-mapping>
    <role-name>roleName</role-name>
    <group-name>groupName</group-name>
  </security-role-mapping>

您可以根据应用程序中的内容相应地修改角色名称和组名称。 在撰写此答案时,该错误仍然存​​在于所有 glassfish 版本中。但我观察到的一个现象是,它没有出现在与 netbeans IDE 捆绑的 glassfish 服务器中。

【讨论】:

  • 不久前我们最终迁移到 Payara 服务器,问题就消失了。 Payara 解决了我们在 Glassfish 中一直存在的一些其他挥之不去的问题,本质上是一个透明的替代品。
猜你喜欢
  • 1970-01-01
  • 2013-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-05
  • 1970-01-01
相关资源
最近更新 更多