對於在線錯誤報告Web應用程序,我需要找到任何用戶如何向Google App Engine應用程序中的Servlet提交錯誤報告(使用HTTP POST)的方式,而所有其他Servlet(應用程序管理界面)均爲受保護的,以便它們只允許訪問使用Google account登錄的用戶。該應用程序在/ *處運行,並且如果使用Google帳戶保護此URL,則沒有身份驗證的servlet將不可用,並且似乎無法從身份驗證中排除URL。授予公衆對一個GAE servlet的訪問權限,但對所有其他資源使用身份驗證?
所以這應該是受保護的:
<url-pattern>/*</url-pattern>
雖然這應該是公開的:
<url-pattern>/addbugreport</url-pattern>
- 只是一個解決方法的想法:在應用程序的所有servlet(除公衆一個)可以檢查用戶是否已經登錄(並且如果未登錄則轉發到登錄頁面)
看到我的編輯,實際上我想讓受保護的管理界面位於/並將公共的可用servlet放在/ newbugreport - 但也許只能放棄此計劃並遵循您的建議,所以+1 – mjn 2010-01-16 21:39:27
如果url模式比聲明式安全更重要;將用戶檢查作爲servlet Filter(映射到'/ *')來實現。這將以一種乾淨的方式將安全性與請求處理邏輯分開。 – mafro 2010-01-17 09:18:05
好主意 - 它是一個Wicket應用程序,所以它已經是一個過濾器,並且向它添加一些安全邏輯代碼應該很容易。您能否將您的評論添加爲答案,以便我可以接受它? – mjn 2010-01-17 13:26:42