實驗室項目——URL包含無效字符

java.lang.IllegalArgumentException: Invalid character found in the request target.

問題描述: URL中帶有特殊字符,如花括號{}、|,就會出現這個錯誤。

此時項目前端報錯400BadRequest(Chrome無異常、IE報錯)

問題原因:Tomcat在 7.0.73、8.0.39、 8.5.7 版本後,添加了對於http頭的驗證。也就是添加了某些規則去限制HTTP頭的規範性。我使用的是Tomcat8.5,所以可能在接收請求不會對符號進行轉義。Chrome不異常的原因或許是瀏覽器自身進行了轉義。

解決方案:

1、使用更低版本的TomCat

2、在TomCat目錄 conf/catalina.properties  中添加 tomcat.util.http.parser.HttpParser.requestTargetAllow=|{} \

     然後重啓服務器即可

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章