有沒有辦法只允許POST請求到j_security_check?我想拒絕GETs。 我正在使用基於表單的安全性並希望僅允許發佈到j_security_check。如果通過GET進行登錄請求,則該請求應該被拒絕。拒絕j_security_check上的GET方法
3
A
回答
1
是的,你可以拒絕GET請求。在安全性約束部分的web.xml文件中,您可以指定允許的http方法。在以下xml中,此安全約束所允許的唯一方法是POST方法。 j_security檢查將只允許post方法。
<security-constraint>
<display-name>Your security constraint</display-name>
<web-resource-collection>
<web-resource-name>Your resource name</web-resource-name>
<url-pattern>/The URL pattern</url-pattern>
<http-method>POST</http-method>
<web-resource-collection>
<security-constraint>
0
您需要更改您的問題。
j_security檢查通常在登錄頁面使用。
如果你請求一個受保護的資源,你沒有通過身份驗證,您將自動重定向到登錄頁面(假設應用程序被配置爲使用基於表單的安全性)
如果資源不應該被質疑的GET請求,按照Doug提到的那樣。例如,如果您希望將POST調用保護到myaccount(Servlet的模式),那麼只有在發佈HTTP Post時,即使沒有用戶身份驗證也會接受GET請求,您將被重定向到登錄頁面。
言下之意是要允許通過驗證的用戶訪問,而GET請求被允許大家POST請求。
10
已經一直在努力做一個JBoss(Tomcat)的服務器上的相同,由於使用GET方法,我試圖各種方式JAAS的安全問題。
使用URL模式/ j_security_check一個web.xml安全約束只使用POST - 這不適用於JAAS機制,因爲它會爲正常的servlet工作。
傳遞登錄詳細信息從登錄頁面,其檢查該請求的方法和如果不是GET轉發然後到j_security_check中間的servlet。 - 這沒有用,而且過於複雜。
創建一個過濾器,用於檢查請求方法,並僅在POST消息中調用j_security_check - 由於JAAS在Web容器中更深,並且在過濾器機制之前調用,所以不起作用。
創建一個閥門,這並獲得JAAS之前調用。
通過增加在invoke方法如下:
HttpServletRequest req = (HttpServletRequest) request;
if (req.getMethod().equals("GET")) {
log.warn("Someone is trying to use a GET method to login!!");
request.getRequestDispatcher("/login.jsp").forward(req, response);
throw new ServletException("Using a GET method on security check!");
}
這並不工作。
0
另一種方法我正在考慮實施:
- 阻止所有,但POST請求在像nginx的反向代理/負載均衡器到j_security_check /阿帕奇
例如在Apache 2上。4本作品:
<LocationMatch ".*j_security_check">
AllowMethods POST
</LocationMatch>
- 如果我需要更多的自定義,我可以用HttpServletRequest.login(...)
相關問題
- 1. http GET:可能未處理的拒絕
- 2. Github上拒絕
- 3. j_security_check困境 - 解決方法
- 4. 拒絕訪問j2ee中的HTTP方法
- 5. JIT拒絕內聯微小的方法
- 6. 的SharePoint拒絕訪問ASMX方法
- 7. Git:拒絕拒絕
- 8. getSelectedDataAsync方法在清單中的ReadWriteDocument級別上拒絕權限
- 9. 權限被拒絕調用方法Location.toString
- 10. 使用拒絕方法進行採樣
- 11. 權限被拒絕調用方法HTMLAnchorElement.focus
- 12. 方法[UIDevice setOrientation:] - 它仍然被拒絕?
- 13. Powershell - WriteAllLines方法 - '訪問被拒絕'
- 14. 拒絕使用nameof作爲方法
- 15. vi拒絕語法
- 16. j Tomcat上的j_security_check
- 17. 不能apt-get刪除或apt-get install | fopen權限被拒絕
- 18. 設置爲「拒絕拒絕」
- 19. Freeswitch「mod_verto」:無效方法,缺少方法或權限被拒絕
- 20. 處理拒絕/拒絕的請求
- 21. 在file_get_contents上拒絕訪問
- 22. PHP拒絕上傳圖片
- 23. 上傳問題(拒絕)
- 24. 在Microsoft.SharePoint.ApplicationPages上拒絕訪問
- 25. 在RenderAction上拒絕訪問
- 26. 拒絕連接[RequestHttps]上MVC3
- 27. 拒絕ExpressJS上的路由上傳
- 28. 拒絕
- 29. 拒絕的node.js
- 30. MongoDB的拒絕