【问题标题】:Jelastic - Firefox gives "This page isn't redirecting properly" when Accessing a Secure Page using GlassFish Server (HTTPS)Jelastic - Firefox 在使用 GlassFish Server (HTTPS) 访问安全页面时给出“此页面未正确重定向”
【发布时间】:2015-05-06 22:36:29
【问题描述】:

美好的一天!

我目前正在使用 Jelastic 作为 Web 托管站点在线测试我新开发的 Web 应用程序 (Online Public Access Catalog)。当我在本地计算机上部署 Web 应用程序时,它运行良好。在 Jelastic 中部署后,它会显示主页(不安全页面)。但是,当我尝试访问 Web 应用程序 (https) 的任何安全页面时,例如单击“登录”按钮或“注册”按钮,Mozilla Firefox 浏览器会显示错误“页面未正确重定向”。在Chromium 中,它显示错误“此网页具有重定向循环”。我在 Jelastic 帐户上打开了SSL。当我查看服务器日志时,它给了我这个错误:

JACC 策略提供者:权限检查失败,上下文(ROOT/ROOT)-权限((“javax.security.jacc.WebUserDataPermission”“/logMeIn.do”“GET”))

除了这种情况,一切正常。我认为这与服务器的安全配置或错误有关,但我尝试搜索了几天但找不到任何解决方案。

有人可以帮我解决这个问题吗?

这是 web.xml 文件的安全部分。

<security-constraint>
        <display-name>AdminSecurityConstraint</display-name>
        <web-resource-collection>
            <web-resource-name>AdminWebResource</web-resource-name>
            <description/>
            <url-pattern>/administerDB.do</url-pattern>
            <url-pattern>/viewBooks.do</url-pattern>
            <url-pattern>/addBooks.do</url-pattern>
            <url-pattern>/processAddingOfBooks.do</url-pattern>
            <url-pattern>/addingOfBooksSuccessful.do</url-pattern>
            <url-pattern>/editBooks.do</url-pattern>
            <url-pattern>/editBooksForm.do</url-pattern>
            <url-pattern>/addingOfBooksFailed.do</url-pattern>
            <url-pattern>/bookNumberNotFound.do</url-pattern>
            <url-pattern>/processEditingOfBooks.do</url-pattern>
            <url-pattern>/removeBooks.do</url-pattern>
            <url-pattern>/processRemovingOfBook.do</url-pattern>
            <url-pattern>/editSuccess.do</url-pattern>
            <url-pattern>/removeBookSuccessful.do</url-pattern>
            <url-pattern>/noChanges.do</url-pattern>
            <url-pattern>/changeAccountSettings.do</url-pattern>
            <url-pattern>/bookNumberNotFoundDel.do</url-pattern>
            <url-pattern>/logMeOut.do</url-pattern>
            <url-pattern>/logMeIn.do</url-pattern>
            <url-pattern>/confirmAdminChanges.do</url-pattern>
            <url-pattern>/viewBookRequests.do</url-pattern>
            <url-pattern>/verifyAccount.do</url-pattern>
            <url-pattern>/removeBorrowRequest.do</url-pattern>
            <url-pattern>/Admin/*</url-pattern>
            <url-pattern>/Delete/*</url-pattern>
            <url-pattern>/Insert/*</url-pattern>
            <url-pattern>/Select/*</url-pattern>
            <url-pattern>/Update/*</url-pattern>
            <url-pattern>/viewReturnedBooks.do</url-pattern>
            <url-pattern>/verifyBookReturn.do</url-pattern>
            <http-method>GET</http-method>
            <http-method>PUT</http-method>
        </web-resource-collection>
        <auth-constraint>
            <description/>
            <role-name>Admin</role-name>
        </auth-constraint>
        <user-data-constraint>
            <description/>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>
    <security-constraint>
        <display-name>MemberSecurityConstraint</display-name>
        <web-resource-collection>
            <web-resource-name>MemberWebResource</web-resource-name>
        <description/>
            <url-pattern>/logMeOut.do</url-pattern>
            <url-pattern>/logMeIn.do</url-pattern>
        <url-pattern>/memberPage.do</url-pattern>
            <url-pattern>/processBorrowRequest.do</url-pattern>
            <url-pattern>/removeBorrowRequest.do</url-pattern>
            <url-pattern>/Member/*</url-pattern>
            <http-method>GET</http-method>
            <http-method>PUT</http-method>
        </web-resource-collection>
        <auth-constraint>
            <description/>
            <role-name>Member</role-name>
        </auth-constraint>
        <user-data-constraint>
            <description/>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>
    <security-constraint>
        <display-name>GuestSecurityConstraint</display-name>
        <web-resource-collection>
            <web-resource-name>IndexWebResource</web-resource-name>
            <description/>
            <url-pattern>/index.jsp</url-pattern>
            <url-pattern>/advancedSearch.do</url-pattern>
            <url-pattern>/signMeUp.do</url-pattern>
            <url-pattern>/confirmSignup.do</url-pattern>
            <url-pattern>/errorBookNotFound.do</url-pattern>
            <url-pattern>/sortMyBook.do</url-pattern>
            <url-pattern>/sortMyBookAdvanced.do</url-pattern>
            <url-pattern>/Search/*</url-pattern>
            <url-pattern>/Login/*</url-pattern>
            <http-method>GET</http-method>
            <http-method>POST</http-method>
        </web-resource-collection>
        <user-data-constraint>
            <description/>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>
    <login-config>
        <auth-method>FORM</auth-method>
        <realm-name>OpacRealm</realm-name>
        <form-login-config>
            <form-login-page>/Login/loginPage.html</form-login-page>
            <form-error-page>/Login/loginError.html</form-error-page>
        </form-login-config>
    </login-config>
    <security-role>
        <description/>
        <role-name>Admin</role-name>
    </security-role>
    <security-role>
        <description/>
        <role-name>Member</role-name>
    </security-role>

这里是 sun-web.xml 文件。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD GlassFish Application Server 3.0 Servlet 3.0//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_3_0-0.dtd">
<sun-web-app error-url="">
  <security-role-mapping>
    <role-name>Admin</role-name>
    <group-name>Admin</group-name>
  </security-role-mapping>
  <security-role-mapping>
    <role-name>Member</role-name>
    <group-name>Member</group-name>
  </security-role-mapping>
  <class-loader delegate="true"/>
  <jsp-config>
    <property name="keepgenerated" value="true">
      <description>Keep a copy of the generated servlet class' java code.</description>
    </property>
  </jsp-config>
</sun-web-app>

提前谢谢...而且,我如何才能使 web.xml 文件中的上述代码正确,因为 Admin/* 中的代码似乎被读取为注释而不是代码的一部分。谢谢...

【问题讨论】:

  • 您使用的是什么版本的 Glassfish 和 JDK?如果您提供指向您的应用程序的链接,这将很有用。
  • GlassFish Server 的版本是 4.1 和 JDK 8。它认为我的 Jelastic 帐户将在几天后到期。我希望你能帮助我。这是链接 --> icplopac.jelastic.servint.net/OPACWSJSPClient

标签: java jsp security glassfish jelastic


【解决方案1】:

我检查了提供的 URL,您似乎没有在 Jelastic 帐户中配置 SSL。

如果部署的应用程序出现问题,错误代码将类似于 502 应用程序关闭或 500 内部服务器错误。

要解决权限检查问题,您可以尝试更新 web.xml 配置文件并将以下内容添加到 网络应用部分:

<security-constraint>
<web-resource-collection>
    <web-resource-name>Protected Context</web-resource-name>
    <url-pattern>/*</url-pattern>
</web-resource-collection>
<!-- auth-constraint goes here if you require authentication -->
<user-data-constraint>
    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>

另外,我认为提到的应用程序像多个应用程序一样部署。如果您开发的多个应用程序需要超过此默认权限集,您可以添加应用程序所需的自定义权限。 com.sun.aas.instanceRoot 变量引用域目录。例如:

grant codeBase "file:${com.sun.aas.instanceRoot}/applications/-" {
...
}

您可以使用以下授权块向存根代码添加权限:

grant codeBase "file:${com.sun.aas.instanceRoot}/generated/-" {
...
}

一般来说,您应该只向需要它们的应用程序或模块添加额外权限,而不是向部署到域的所有应用程序添加额外权限。例如:

grant codeBase "file:${com.sun.aas.instanceRoot}/applications/MyApp/-" {
...
}

对于一个模块:

grant codeBase "file:${com.sun.aas.instanceRoot}/applications/MyModule/-" {
...
}

权限设置文件是 server.policy,位于 /opt/shared/glassfish/domains/domain1/config/server.policy

祝你好运,请随时关注我)

【讨论】:

  • 感谢您的回复@leo。几天前我尝试通过在 Jelastic 配置中打开 SSL 来配置 Web 应用程序的 SSL。但是当我访问主页以外的其他资源时,我在 Mozilla Firefox 中收到“页面未正确重定向”错误。它尝试在 Google 上搜索,他们建议它与 Nginx 配置有关,但我没有使用 Nginx。我会尝试建议并在这里更新我的帖子。顺便说一句,leo,您的声明“像多个应用程序一样部署”是什么意思?谢谢。我现在已经开启 SSL。
  • 在 Chromium 中,我收到“此网页有重定向循环”错误(尚未尝试 leo 的建议)
  • 另外一件事,我没有提到这个。我正在使用一个单独的 Web 服务来访问数据库(一个已部署的应用程序)和一个使用该 Web 服务的客户端应用程序(在 icplopac.jelastic.servint.net/OPACWSJSPClient 中部署的那个)。我认为这就是@leo 关于拥有多个应用程序的意思...
  • 您好,我可以看到 https 正在工作 icplopac.jelastic.servint.net/OPACWSJSPClient 出了什么问题?
  • @leo 的问题是,当我尝试访问受保护的网页时,出现错误“页面未正确重定向”。尝试点击主页右上角的“登录”或“注册”按钮。这是我在 web.xml 中设置的受保护页面之一。我会更新问题leo。感谢您指出这一点。
猜你喜欢
  • 1970-01-01
  • 2011-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-11
  • 2014-03-12
  • 1970-01-01
  • 2017-11-28
相关资源
最近更新 更多