在 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
提交
取消