在 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-*標頭參數現在處理正確。
添加回答
舉報
0/150
提交
取消