You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Vaadin部署AWS时Google OAuth重定向HTTPS报错排查

Google OAuth2 重定向URI HTTP协议报错解决方案

问题现象

登录自研应用时收到如下提示:

若您是应用开发者,请确保请求详情符合Google政策要求。redirect_uri: http://XXXXXX/login/oauth2/code/google

尝试将该地址添加到Google Cloud控制台的已授权重定向URI列表时,收到报错:

Invalid Redirect: You are using a sensitive scope. URI must use https:// as the scheme(无效重定向:您使用了敏感权限范围,URI必须采用https://作为协议方案)

报错截图

手动添加带https://前缀的重定向地址后,登录时实际请求的redirect_uri依旧是http开头,仍然触发政策合规提示。
本地运行应用正常,部署到AWS后出现该问题,使用技术栈为Java、Spring、Vaadin。

根因说明

你配置的spreadsheets、drive、script.scriptapp都属于Google OAuth敏感权限范围,强制要求重定向URI必须使用HTTPS协议。
部署到AWS时,HTTPS请求通常会在负载均衡(ALB/CloudFront)层完成SSL卸载,转发到后端Spring应用的实际请求是HTTP协议,Spring Security默认不会识别负载均衡转发的协议头,自动生成OAuth2重定向地址时就会使用http前缀,和Google侧的HTTPS要求冲突。

修复步骤

1. 配置Spring识别反向代理转发头

在application.properties配置文件中添加如下配置,让Spring正确读取负载均衡传递的HTTPS协议标识:

# Spring Boot 2.2+版本使用该配置
server.forward-headers-strategy=native

# Spring Boot 2.2以下版本替换为如下配置
# server.use-forward-headers=true

AWS的ALB/CloudFront默认会携带X-Forwarded-Proto头标识原始请求协议,添加该配置后Spring Security会自动生成https开头的重定向URI。

2. 兜底配置(可选)

如果添加上述配置后仍然生成http前缀的重定向地址,可以在OAuth2安全配置类中显式指定HTTPS重定向地址,修改WebSecurityConfig的configure方法:

@Override
protected void configure(HttpSecurity http) throws Exception {
    super.configure(http);
    http.oauth2Login()
        .loginPage(LOGIN_URL).permitAll()
        // 将下方域名替换为你应用的实际对外访问域名
        .redirectionEndpoint()
            .baseUri("https://替换为你的实际域名/login/oauth2/code/*");
}

3. AWS侧配置校验

  • 确认负载均衡443端口HTTPS监听器配置正常,SSL证书有效
  • 确认负载均衡转发到后端8080端口时,未禁用X-Forwarded-*系列头转发(AWS默认开启,无特殊修改无需调整)
  • 不需要在Spring应用内部配置HTTPS证书,SSL卸载统一在负载均衡层处理即可,避免双重HTTPS冲突

4. Google Cloud控制台配置校验

确认Google Cloud控制台的已授权重定向URI列表中,准确填写https://你的实际域名/login/oauth2/code/google,地址不要带多余斜杠、路径不要写错。

验证方式

重新部署应用后触发Google登录,查看跳转到Google授权页的请求参数,确认redirect_uri字段为https开头且与控制台配置完全一致,即可正常完成授权流程。

注意:本地调试如果需要用到Drive/Sheets类敏感scope,也需要使用HTTPS隧道工具映射本地服务为HTTPS地址,否则会触发相同报错。

内容的提问来源于stack exchange,提问作者Александр Хворостенко

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 07:27:21