【问题标题】:Using struts2 redirect-action over https在 https 上使用 struts2 重定向操作
【发布时间】:2011-11-30 12:34:55
【问题描述】:

我对 struts2 和 https 上的重定向操作有疑问。

基本上,我从 https 请求返回的重定向响应有一个不安全的位置(即 http://...)。

这意味着浏览器从安全会话进入非安全会话。

知道是什么原因造成的吗?

干杯,

斯图尔特。

【问题讨论】:

    标签: https struts2


    【解决方案1】:

    问题不在 Struts 2 中,尽管 Umesh 发布的解决方案也可以。

    在我工作的环境中,负载平衡器在 SSL 连接到达 Apache 前端之前终止了它。这意味着对 Tomcat 的 AJP 请求似乎是 HTTP,并且来自 Struts 重定向操作的响应中的重定向 URL 被写为 HTTP。

    我选择的解决方案是在 tomcat 的 server.xml 中为 HTTPS 连接编写一个单独的连接器,指定:

    secure="true"
    scheme="https"
    proxyPort="443"
    

    【讨论】:

      【解决方案2】:

      Struts 2 本身默认不支持 SSL 切换 如果您从 HTTPS 模式切换到 HTTP,反之亦然,我最好的选择是使用 Struts2-ssl 插件。 该插件将根据方法注释或您提供的配置来处理切换。

      这里是详细信息 Struts2-SSL plugin

      【讨论】:

      • 我不想使用struts切换到HTTPS,我只是希望重定向响应保持原始请求的模式。
      • @user1073338:这就是我要告诉你的 struts2 没有任何内置机制来处理此类协议,重定向将由容器而不是框架本身完成
      • 你是对的 - 这是 tomcat 容器将重定向 URL 重写为 HTTP,因为 SSL 连接在到达 tomcat 之前已终止。
      • :) 因为处理安全/不安全连接是容器的工作,而不是框架本身
      • 当不在 @Secure 范围内时,此插件不会将 https url 重定向回 http。对此有任何修复或解决方法吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-25
      • 2011-09-28
      • 1970-01-01
      • 2011-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多