对于在线错误报告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