问题描述:项目中在实现企业微信-客户联系功能时,第一步是调用接口获取企业token. https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=xxx\&corpsecret=xxx.
我们的网络架构分为: 外网,DMZ区,内网. 服务部署在内网,访问外网需要走DMZ区代理转发.
我们的DMZ区nginx中配置的是 proxy.xxx.com.cn代理qyapi.weixin.qq.com, 之前上下文有 /qywechat-hh.
然后我就直接使用这个上下文,即
http://proxy.xxx.com.cn/qywechat-hh/cgi-bin/gettoken?corpid=xxx\&corpsecret=xx
然后访问时就报出403Forbidden异常.
具体异常如下:
org.springframework.web.client.HttpClientErrorException$Forbidden:403 Forbidden
问题原因: 接口路径不可被变更, 上下文不能变, 会做校验
解决办法: 在代理中添加/cgi-bin上下文
即: http://proxy.xxx.com.cn/cgi-bin/gettoken?corpid=xxx\&corpsecret=xx