【问题标题】:Redirect every HTTP request to HTTPS将每个 HTTP 请求重定向到 HTTPS
【发布时间】:2015-02-02 19:33:53
【问题描述】:

我知道,答案如下:

<security-constraint> 
    <web-resource-collection> 
        <web-resource-name>All resources</web-resource-name> 
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

它工作得很好,但前提是它是 web.xml 中唯一的一个安全约束。

一旦我添加了第二个安全约束,就会出现这样的情况:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Admin section</web-resource-name>
        <url-pattern>/admin/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>USER</role-name>
    </auth-constraint>
</security-constraint>

重定向对指向管理部分的 URL 停止工作(在这种情况下,应用程序显示登录表单)。

有没有办法通过 web.xml 或 wildfly 配置全局启用重定向?

PS:用wildfly 8.2测试

【问题讨论】:

  • 你可以配置你的服务器强制HTTPS
  • @Rafael:以什么方式?
  • @Rafael:该链接是关于 Apache url 重写的。我的问题是关于 servlet 或 wildfly 配置。
  • @Rafael:事情没那么简单。仅当您使用默认端口(80 和 443)或您已经知道必须使用的端口时,该方法才有效。该信息存储在standalone.xml 中,但Web 应用程序无法访问它。

标签: java web-applications web.xml wildfly


【解决方案1】:

您是否尝试将“user-data-constraint”添加到第二个“security-constraint”?

【讨论】:

  • 看起来像答案的措辞不正确,但这是对该问题的有效答案。 CONFIDENTIAL 属性用于在 WildFly 中使用此方法进行重定向,如 JBoss.org 上的 seen in this thread。 @JuliuszJ - 改写你的答案可能是个好主意。如果您认为相关,请使用我拥有的相同链接。
  • 这个方案不能解决问题。第一个安全约束应充当全局 https“重定向器”。每次我在浏览器中输入 http url 时,我都必须重定向到 https url。如果我添加了一个新的安全约束并且缺少添加 user-data-constraint 部分会发生什么?这很容易出错。所以,问题是:有没有办法通过 web.xml 或 wildfly 配置启用重定向全局
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-27
  • 2014-06-30
  • 1970-01-01
相关资源
最近更新 更多