生成Bearer Token时遇HTTPS强制访问错误的排查求助
问题排查:测试环境配置权限后Token生成报错(要求HTTPS)
问题背景
我们的开发/测试环境采用HTTP服务器,两个架构部署在同一服务器的不同端口。近期开发了若干REST API,开发环境可正常运行。测试环境未配置角色与权限时API可正常使用,但配置后在Postman中生成Token时出现如下错误:
"Error-Reason: error="URL"; error_description*=UTF-8''This%20resource%20must%20only%20be%20accessed%20over%20HTTPS.%20It%20was%20incorrectly%20accessed%20using%20HTTP"
已排查内容:
- 无内部防火墙拦截
security.verifySSL设为FalseAuthorization Required for Metadata Access设为Yes
后续排查方向
- 检查权限配置的令牌端点强制HTTPS规则:多数身份认证/权限框架在配置角色权限时,会单独对令牌生成端点(如
/oauth/token)设置强制HTTPS访问的规则,这个规则不会被全局的security.verifySSL覆盖。直接去权限管理的配置页面,找到令牌相关端点的设置,关闭强制HTTPS选项。 - 核对Postman的Token请求地址:确认Postman中请求Token的URL是否确实用的HTTP,有没有误写为HTTPS;同时检查服务器上是否存在反向代理(如Nginx)配置了HTTP转HTTPS的重定向规则,导致请求被强制跳转后触发报错。
- 排查认证组件的专属HTTPS参数:如果用了Spring Security、Keycloak这类第三方认证组件,除了
security.verifySSL,可能还有requireSecure、useHttps这类单独控制令牌端点协议的参数。去组件的配置文件里搜索这类参数,若设为true则改成false。 - 检查服务器全局安全约束:Tomcat、Jetty这类服务器的配置文件(如
web.xml)里,可能存在针对认证路径的安全约束,要求必须用HTTPS访问。找到security-constraint标签,移除或修改针对令牌端点的HTTPS强制规则。 - 确认元数据接口的访问协议:因为开启了
Authorization Required for Metadata Access,生成Token时会先请求元数据接口。检查元数据的URL是否配置为HTTPS,若环境是HTTP则改成对应协议,避免因协议不匹配触发报错。
内容的提问来源于stack exchange,提问作者Anand Jagtap
相关产品推荐
相关产品推荐

