0

我正在谷歌应用引擎中使用 jsp-servlet 开发一个网站。我想保护访问我网站的所有用户的某些网页。那么有什么方法可以密码保护我的网页。我知道这很容易通过 apache 中的 htaccess 完成。htaccess 可以在谷歌应用引擎中工作吗?如果是,请说明流程。

4

1 回答 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 回答