Google I/O 2012に行ってきた


Google I/O  2012年07月02日 23時07分 

AppEngineでBasic認証


GAE/JでBasic認証を実装できるという話を聞いたのでさっそくTryしてみました。参考にしたのは、中田秀基さん著「すっきりわかるGoogle App Engine for Java クラウドプログラミング」のサンプルコードです。

フィルタークラスの作成


ソースコードはコチラから参照可能です。BasicAuthFilterというFilterクラスをそのままコピーしましょう。

Basic認証の対象となるサーブレットの作成


"Hello World"と出力する単純なサーブレットを作成します。
import java.io.IOException;
import javax.servlet.http.*;

@SuppressWarnings("serial")
public class BasicAuthTest extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.setContentType("text/plain");
resp.getWriter().println("Hello, world");
}
}


web.xmlの作成


Filterクラスとサーブレットの設定は以下の通りです。
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">

<filter>
<filter-name>BasicAuthFilter</filter-name>
<filter-class>com.tomorier.labs.filter.BasicAuthFilter</filter-class>
<init-param>
<param-name>realm</param-name>
<param-value>Basic Auth Test</param-value>
</init-param>
<init-param>
<param-name>passwdFile</param-name>
<param-value>WEB-INF/passwd.prop</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>BasicAuthFilter</filter-name>
<url-pattern>/basic_auth</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>BasicAuthTest</servlet-name>
<servlet-class>com.tomorier.labs.controller.BasicAuthTest</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name<BasicAuthTest</servlet-name>
<url-pattern>/basic_auth</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>


パスワード用ファイルの作成


Basic認証のパスワードファイル「war/WEB-INF/passwdFile.prop」を作成します。
User1=test
User2=test2


デプロイ


あとは、デプロイして完成です。

GAE/J  2012年03月24日 19時03分 

iPhoneアプリを個人で出してます。Python/JavaScriptが大好きです。このブログはGAE/Pythonで作ったオリジナルブログです。
カテゴリ
開発アプリ