獲取不到自定義的request的header屬性


ava獲取headers的代碼如下:

// 獲取http-header里面對應的簽名信息
Enumeration<?> headerNames = request.getHeaderNames();
logger.info("request headerNames : {}", JSONParser.toJSONString(request.getHeaderNames()));
logger.info("request sys_sign header : {}", JSONParser.toJSONString(request.getHeader("sys_sign")));
// 簽名的key
String key = null;
// 簽名內容
String signValue = null;
while (headerNames.hasMoreElements()) {
    // 獲得請求頭部的Key
    key = (String) headerNames.nextElement();
    if ("sys_sign".equals(key)) {
        signValue = request.getHeader(key);
        break;
    }
}

代碼沒問題,本地可以獲取到,nginx獲取不到。

查了半天,發現跟nginx的配置有關系,nginx會默認去除屬性名包含下划線“_”的屬性。

解決方法,修改nginx的配置文件 nginx.conf ,在配置http的部分修改如下:

underscores_in_headers on; ##(默認值是off)

 

 

 

建議不要使用包含下划線屬性名 . . .


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM