0

Google アプリ エンジンで jsp-servlet を使用して Web サイトを開発しています。サイトにアクセスするすべてのユーザーからいくつかの Web ページを保護したいと考えています。私の Web ページをパスワードで保護する方法はありますか。Apacheのhtaccessで簡単に実行できることを知っています。htaccess は Google App Engine で動作しますか? はいの場合、プロセスを指定してください。

4

1 に答える 1

1

App Engine ユーザー APIを利用できます。これにより、ユーザーは Google アカウントを使用してアプリにログインできるようになります。誰がアプリのどの部分にアクセスできるかを制御したい場合は、サーブレットにリクエストを送信するときに、データ ストア内の許可されたユーザーのリストに対してログイン ユーザーの ID を確認できます。

編集:
ファイル を使用するのとまったく同じ方法を見つけることはできません.htaccess。それは App Engine の仕組みではありません。ページのレンダリングを担当するサーブレットにコードがあります。このコードでは、ユーザーがアクセス権を持っているかどうかを確認するためのチェックを追加する必要がありますが、チェックしたいページに対してのみです。

これがコードサンプルです。これで物事が明確になることを願っています。これは、お送りしたリンクのコードを少し変更したバージョンです。

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 に答える