0
点赞
收藏
分享

微信扫一扫

一次生产上由于Nginx引起的HTTP请求Header参数丢失的问题

有态度的萌狮子 2021-12-29 阅读 34

问题描述

在一个第三方SSO的对接环境中,服务端需要拿到当前前端的URL进行重定向,此时出于安全方面的考量,研发组决定把重定向的URL放到HTTP请求中的Header进行传参,参数的名称为redirect_url,在测试环境跑的时候非常通畅,但是生产环境获取这个redirect_url进行URLEncoder.encode()操作的时候,出现了NPE异常.

产生问题的原因

在开发环境的时候,由于前端使用node.js进行代理端口,所以并没有什么问题,但是由于生产环境使用的是Nginx进行静态资源压缩,所以HTML页面发起的HTTP请求都是被Nginx所转发的,经过查阅资料发现,Nginx配置的underscores_in_headers项自动过滤了Header头部的下划线的参数。

解决问题的方案

    1. 把参数名进行重写,避开拦截规则。比如:redirectUri;
    1. 将Nginx的underscores_in_headers设置为false.

感想

举报

相关推荐

0 条评论