我正在谷歌应用引擎中使用 jsp-servlet 开发一个网站。我想保护访问我网站的所有用户的某些网页。那么有什么方法可以密码保护我的网页。我知道这很容易通过 apache 中的 htaccess 完成。htaccess 可以在谷歌应用引擎中工作吗?如果是,请说明流程。
问问题
3990 次
1 回答
1
您可以利用App Engine 用户 API。这允许用户使用他们的 Google 帐户登录到您的应用程序。如果您想控制谁可以进入您的应用程序的哪些部分,您可以在他们向您的 servlet 发出请求时将登录用户的 ID 与您的数据存储中允许的用户列表进行比较。
编辑:
您不会找到与使用.htaccess
文件完全相同的方法——这不是 App Engine 的工作方式。您的 servlet 中有负责呈现页面的代码。在此代码中,您需要添加检查以查看用户是否具有访问权限,但仅限于您要检查的页面。
这是一个代码示例,我希望它可以澄清一些事情。这是我发送给您的链接中代码的略微修改版本。
public class MySecretServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
UserService userService = UserServiceFactory.getUserService();
resp.setContentType("text/html");
if (req.getPathInfo().equals("/secret_page") {
if (req.getUserPrincipal() != null &&
req.getUserPrincipal().getUserId().equals("admin-id")) {
// render your protected page here
} else {
resp.getWriter().println("<p>Please <a href=\"" +
userService.createLoginURL(thisURL) +
"\">sign in</a>.</p>");
}
} else {
// render your unprotected content here
}
}
}
或者,您可以使用web.xml
文件中的安全约束功能。您可以在此处找到这些文档。但是,这不太灵活,因为您只能在“所有人”和“仅限管理员”之间更改访问权限。
于 2012-07-13T11:41:57.893 回答