gpt4 book ai didi

spring - 添加 HTTPS 支持会导致循环重定向

转载 作者:行者123 更新时间:2023-11-28 21:47:53 24 4
gpt4 key购买 nike

我在 Web 应用程序中使用 Spring Secutiry 框架。我已经安装了 SSL 证书并能够通过 https 访问我的应用程序。现在,当我将 requires-channel="https" 属性添加到所有 intercept-url 指令时,服务器响应:

许多连接的错误 310 (net::ERR_TOO_MANY_REDIRECTS)

spring 每次都运行这段代码:

64050 [http-bio-8080-exec-1] DEBUG org.springframework.security.web.FilterChainProxy  - / at position 1 of 12 in additional filter chain; firing Filter: 'ChannelProcessingFilter'
64050 [http-bio-8080-exec-1] DEBUG org.springframework.security.web.util.AntPathRequestMatcher - Checking match of request : '/'; against '/'
64050 [http-bio-8080-exec-1] DEBUG org.springframework.security.web.access.channel.ChannelProcessingFilter - Request: FilterInvocation: URL: /; ConfigAttributes: [REQUIRES_SECURE_CHANNEL]
64050 [http-bio-8080-exec-1] DEBUG org.springframework.security.web.access.channel.RetryWithHttpsEntryPoint - Redirecting to: https://sky-handling.ejl-group.com/
64050 [http-bio-8080-exec-1] DEBUG org.springframework.security.web.DefaultRedirectStrategy - Redirecting to 'https://sub.domain.com/'

我该如何解决?

谢谢

更新#1:

<http use-expressions="true">
<form-login login-page="/wellcome/" login-processing-url="/login" default-target-url="/" always-use-default-target="false"
authentication-failure-url="/wellcome/?error=1" username-parameter="email" password-parameter="password" />
<remember-me key="temp" token-validity-seconds="-1" />
<logout invalidate-session="true" logout-success-url="/" logout-url="/logout"/>
<intercept-url pattern="/" access="authenticated"/>
<intercept-url pattern="/administration/**" access="authenticated"/>
<intercept-url pattern="/wellcome/" access="permitAll"/>
<intercept-url pattern="/login" access="permitAll"/>
<custom-filter ref="ajaxTimeoutRedirectFilter" after="EXCEPTION_TRANSLATION_FILTER"/>
</http>

我将现有证书导入到 keystore 并配置了 tomcat,但是如果我添加这样的行:

<VirtualHost _default_:443>
SSLEngine on
SSLCertificateFile /usr/local/ssl/crt/public.crt
SSLCertificateKeyFile /usr/local/ssl/private/*.ejl-group.com.key
SSLCACertificateFile /usr/local/ssl/crt/intermediate.crt
ServerName sub.domain.com
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8443/
ProxyPassReverse / http://localhost:8443/
</VirtualHost>

它因 503 Service Temporarily Unavailable 错误而失败

最佳答案

我通过在 security.xml 文件中添加端口映射来修复此问题:

<http>
<port-mappings>
<port-mapping http="8088" https="8443"/>
<port-mapping http="80" https="443"/>
</port-mappings>
</http>

这个博客帮助了我:http://consultingblogs.emc.com/richardtiffin/archive/2010/10/15/applying-ssl-to-a-spring-web-application-on-tomcat.aspx

如果你在负载均衡器后面,你必须添加一些代码:Offloading https to load balancers with Spring Security

关于spring - 添加 HTTPS 支持会导致循环重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14418254/

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