Azure Web应用部署后Spring Boot API Key 403权限问题及配置咨询
问题解答
环境变量正确配置方式
不需要设置名称为ecoopt_http_auth-header-apikey,正确配置如下:
- 在Azure门户「配置->应用设置」中,名称填写
ecoopt_apikey,值填写你的实际密钥(比如mySecretKey)。
原因很明确:你的application.yaml中auth-header-apikey的取值是${env.ecoopt_apikey:DEFAULT_API_PASSWORD},这里直接引用的环境变量名就是ecoopt_apikey,必须严格匹配这个名称,Spring Boot才能正确读取到自定义密钥,而非 fallback 到默认值DEFAULT_API_PASSWORD。
额外排查点(解决403问题)
- 验证环境变量是否生效:查看Azure应用服务的启动日志,确认Spring Boot加载的
ecoopt.http.auth-header-apikey值是你配置的密钥,而非默认值。如果显示默认值,说明环境变量配置未生效,检查名称拼写是否错误、是否保存后重启了应用。 - 核对请求头与密钥:确保客户端发送请求时,
MyAppAPIKey请求头的值和Azure配置的ecoopt_apikey完全一致,注意大小写、特殊字符。 - 环境兼容性:如果你的Azure Web App使用Linux环境,环境变量名称区分大小写,必须严格写成
ecoopt_apikey(小写+下划线);Windows环境不区分,但建议统一保持一致。 - 检查认证过滤器逻辑:确认
APIKeyAuthenticationFilter中是否正确从请求头(MyAppAPIKey)提取密钥,并与principalRequestValue(环境变量值)做精确比对,避免逻辑错误导致认证失败。
内容的提问来源于stack exchange,提问作者Yauheni
相关产品推荐
相关产品推荐

