簡體   English   中英

對代理HttpServlet請求使用原始URL請求

[英]Using original URL request for proxied HttpServlet Request

我有一個Apache代理,它將請求重定向到/ foo / bar到在/ foo上運行的Web應用程序。 問題是我的過濾器鏈中有一個Servlet過濾器,該過濾器要求請求仍為/ foo / bar格式。 這是我無法更改的身份驗證過濾器,這將導致登錄/ foo而不是/ foo / bar后重定向錯誤。

在其他類似的線程之后,我嘗試將RequestDispatcher.forward與修改后的請求一起使用,並嘗試使用HttpServletResponse.sendRedirect來修改URL。 第一種方法似乎跳過了我的過濾器鏈的其余部分,第二種方法轉到了代理,然后將URL修改回/ foo。

有沒有辦法解決。 理想情況下,我想要的是僅通過身份驗證過濾器來獲得/ foo / bar請求,而在鏈中的其余部分都將獲得/ foo請求。

看起來HttpServletRequestWrapper正是我想要的。 只需擴展它並提供getRequestURI和getRequestURL覆蓋即可(就像這里所述 )。 然后需要在我的auth過濾器之前和之后添加過濾器映射,以根據需要轉換請求URL / URI。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM