libro
www.tuyano.com
Google App Engine for Java(GAE/J)プログラミング入門

Googleアカウントによるユーザー認証 (3/5)

作成:2010-05-10 15:19
更新:2010-05-10 18:36

■ログアウト用サーブレットの作成

続いて、ログアウトのための処理を用意しましょう。これは、サーブレットとして用意しておきます。サーブレットにアクセスすると、ログアウトページに移動するようにします。ログアウトというのはログインと違い、普通のWebページなどから、リンクをクリックしてユーザーが自分でログアウトをすることが多いものです。そこで、このように指定のアドレスにアクセスすればログアウトするようにしておきました。

ここでは、UserServiceを作成後、「createLogoutURL」を呼び出してログアウトのアドレスを取得しています。引数には、"/public.html"としておきました。後述しますが、これはサンプルで用意する公開ページです。ログアウトしたら、このページに戻るようにしてあります。

サーブレットができたら、先ほどのフィルターとあわせて、web.xmlに登録をしておきましょう。ここでは、LoginCheckFilterフィルターは、"/private.jsp"というページに設定しておきました。これが、サンプルで作成する「ログインしないとアクセスできないページ」です。

またサーブレットは、"/logout"というアドレスで公開しておきました。<a>タグなどでこのページに移動すれば、自動的にログアウトされるというわけです。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

※LogoutServlet.javaのソースコード

package jp.tuyano;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.*;

import com.google.appengine.api.users.*;

public class LogoutServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		UserService service = UserServiceFactory.getUserService();
		String url = req.getRequestURI();
		String logouturl = service.createLogoutURL("/public.html");
		resp.sendRedirect(logouturl);
	}
	
}


※web.xmlへの追記


<filter>
	<filter-name>logincheck</filter-name>
	<filter-class>jp.tuyano.LoginCheckFilter</filter-class>
</filter>
<filter-mapping>
	<filter-name>logincheck</filter-name>
	<url-pattern>/private.jsp</url-pattern>
</filter-mapping>    
    
<servlet>
	<servlet-name>logout</servlet-name>
	<servlet-class>jp.tuyano.LogoutServlet</servlet-class>
</servlet>
<servlet-mapping>
	<servlet-name>logout</servlet-name>
	<url-pattern>/logout</url-pattern>
</servlet-mapping>
※関連コンテンツ

「Google App Engine for Java(GAE/J)プログラミング入門」に戻る