为了账号安全,请及时绑定邮箱和手机立即绑定

Spring Boot OAuth 始终重定向到 HTTP

Spring Boot OAuth 始终重定向到 HTTP

喵喔喔 2021-05-31 09:12:13
在 IBM Cloud CF Java Buildpack 上使用 Spring Boot OAuth 2...https://github.com/ericis/oauth-cf-https-issue*我已经尝试了以下所有组合。使用此配置,应用程序会陷入无限的重定向循环中,OAuth 重定向策略将其发送至http,然后此配置将其发送至https.http.requiresChannel().anyRequest().requiresSecure()如果没有这个配置,用户可以通过 http 登录(不需要)。完整配置:http.  requiresChannel().anyRequest().requiresSecure().  authorizeRequests().    // allow access to...    antMatchers("favicon.ico", "/login", "/loginFailure", "/oauth2/authorization/ghe")    .permitAll().anyRequest().authenticated().and().oauth2Login().    // Codify "spring.security.oauth2.client.registration/.provider"    clientRegistrationRepository(this.clientRegistrationRepository()).    // setup OAuth2 client service to use clientRegistrationRepository    authorizedClientService(this.authorizedClientService()).    successHandler(this.successHandler()).    // customize login pages    loginPage("/login").failureUrl("/loginFailure").    userInfoEndpoint().      // customize the principal      userService(this.userService());我也尝试过:要使用的服务器配置 httpsserver:  useForwardHeaders: true  tomcat:    protocolHeader: x-forwarded-proto小程序过滤器import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;
查看完整描述

3 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

由于使用 Spring 5,决定采用下一个解决方案(安全配置):


        http

            .addFilterBefore(new ForwardedHeaderFilter(), OAuth2AuthorizationRequestRedirectFilter.class)

x-forwarded-*标头参数现在处理正确。


查看完整回答
反对 回复 2021-06-02
  • 3 回答
  • 0 关注
  • 287 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信