gpt4 book ai didi

spring - 当请求来自 https 时,如何使 Spring 重定向保持在 HTTPS 上?

转载 作者:行者123 更新时间:2023-12-01 15:00:51 24 4
gpt4 key购买 nike

我正在使用 Apache 2.2、JBoss 7.1.3.Final 和 Spring 3.2.11.RELEASE。当 Spring 在我们的一个 Controller 中发出重定向时,就会出现这种情况

return new ModelAndView(new RedirectView(returnUrl+"?lti_errormsg="+msg));

即使原始页面请求包含“https”,新的重定向只包含“http”。我相信这可能与 Apache 如何连接到 JBoss 有关,我想知道如何调整我们的设置以便 Spring 问题正确重定向(https 请求的 https,http 请求的 http)。我们通过 AJP 连接。这是我们的 Apache 配置
ProxyErrorOverride On
ProxyPass /myproject/ ajp://localhost:8009/myproject/

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule !/ebook/status https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

很简单。这是 JBoss 中与 AJP 相关的设置。
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
<socket-binding name="management-native" interface="management" port="${jboss.management.native.port:9999}"/>
<socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
<socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9443}"/>
<socket-binding name="ajp" port="8009"/>
<socket-binding name="http" port="8081"/>
<socket-binding name="https" port="8443"/>
<socket-binding name="osgi-http" interface="management" port="8090"/>
<socket-binding name="remoting" port="4447"/>
<socket-binding name="txn-recovery-environment" port="4712"/>
<socket-binding name="txn-status-manager" port="4713"/>
<outbound-socket-binding name="mail-smtp">
<remote-destination host="localhost" port="25"/>
</outbound-socket-binding>
</socket-binding-group>

让我知道我应该包含哪些其他信息或我们需要进行哪些配置,以便 Spring 重定向可以正常生效。

谢谢, - 戴夫

编辑:这是我们在 apache httpd.conf 文件中加载 ajp 模块的方式
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

最佳答案

设置 InternalResourceViewResolver 的 redirectHttp10Compatible属性为假:

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/" />
<property name="suffix" value=".jsp" />
<property name="redirectHttp10Compatible" value="false" />
</bean>

关于spring - 当请求来自 https 时,如何使 Spring 重定向保持在 HTTPS 上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28972024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com