我正在谷歌应用引擎中使用jsp-servlet开发一个网站。我想保护访问我网站的所有用户的一些网页。那么有没有办法密码保护我的网页。我知道很容易通过apache中的htaccess完成。 htaccess可以在谷歌应用引擎中工作吗?如果是,请说明流程。
答案 0 :(得分:1)
您可以利用App Engine Users 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
文件中的安全约束功能。 You can find the documentation for those here。但这不太灵活,因为您只能更改“everyone”和“admin-only”之间的访问权限。