如何在谷歌应用引擎中创建受密码保护的网页

时间:2012-07-13 10:28:51

标签: google-app-engine .htaccess jsp servlets

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

1 个答案:

答案 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”之间的访问权限。