- Home ›
- サーブレット/JSP入門 ›
- スケジュール管理 ›
- HERE
ユーザー認証の状態をチェック
広告
各サーブレットにフィルタを設定し、フィルタの中でユーザー認証が行われているかどうかを確認するようにします。
フィルタではセッションが開始されているかどうか、そしてセッション変数の「login」が設定されているかどうかをチェックして認証されているかどうかを確認します。
作成したフィルタ用サーブレットは次の通りです。
コンパイルして作成されたクラスファイルを「(root)¥WEB-INF¥classes¥」ディレクトリに配置します。
D:¥servlet-sample | +--schedule | +-- (top.html) | +-- WEB-INF | | | +-- classes | | | +-- (MonthView6.class) | | | +-- (NewSchedule5.class) | | | +-- (ScheduleInsert2.class) | | | +-- (ScheduleView1.class) | | | +-- (EditSchedule1.class) | | | +-- (ScheduleUpdate1.class) | | | +-- (DeleteCheck1.class) | | | +-- (ScheduleDelete1.class) | | | +-- (LoginPage1.class) | | | +-- (AuthFilter1.class) | +-- img
また作成したフィルタを「LoginPage」サーブレット以外の呼び出しに対して設定するように「web.xml」を次のように書き換えます。
<?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <filter> <filter-name>AuthFilter</filter-name> <filter-class>AuthFilter1</filter-class> </filter> <filter-mapping> <filter-name>AuthFilter</filter-name> <url-pattern>/MonthView</url-pattern> </filter-mapping> <filter-mapping> <filter-name>AuthFilter</filter-name> <url-pattern>/NewSchedule</url-pattern> </filter-mapping> <filter-mapping> <filter-name>AuthFilter</filter-name> <url-pattern>/ScheduleInsert</url-pattern> </filter-mapping> <filter-mapping> <filter-name>AuthFilter</filter-name> <url-pattern>/ScheduleView</url-pattern> </filter-mapping> <filter-mapping> <filter-name>AuthFilter</filter-name> <url-pattern>/EditSchedule</url-pattern> </filter-mapping> <filter-mapping> <filter-name>AuthFilter</filter-name> <url-pattern>/ScheduleUpdate</url-pattern> </filter-mapping> <filter-mapping> <filter-name>AuthFilter</filter-name> <url-pattern>/DeleteCheck</url-pattern> </filter-mapping> <filter-mapping> <filter-name>AuthFilter</filter-name> <url-pattern>/ScheduleDelete</url-pattern> </filter-mapping> <servlet> <servlet-name>MonthView</servlet-name> <servlet-class>MonthView6</servlet-class> </servlet> <servlet-mapping> <servlet-name>MonthView</servlet-name> <url-pattern>/MonthView</url-pattern> </servlet-mapping> <servlet> <servlet-name>NewSchedule</servlet-name> <servlet-class>NewSchedule5</servlet-class> </servlet> <servlet-mapping> <servlet-name>NewSchedule</servlet-name> <url-pattern>/NewSchedule</url-pattern> </servlet-mapping> <servlet> <servlet-name>ScheduleInsert</servlet-name> <servlet-class>ScheduleInsert2</servlet-class> </servlet> <servlet-mapping> <servlet-name>ScheduleInsert</servlet-name> <url-pattern>/ScheduleInsert</url-pattern> </servlet-mapping> <servlet> <servlet-name>ScheduleView</servlet-name> <servlet-class>ScheduleView1</servlet-class> </servlet> <servlet-mapping> <servlet-name>ScheduleView</servlet-name> <url-pattern>/ScheduleView</url-pattern> </servlet-mapping> <servlet> <servlet-name>EditSchedule</servlet-name> <servlet-class>EditSchedule1</servlet-class> </servlet> <servlet-mapping> <servlet-name>EditSchedule</servlet-name> <url-pattern>/EditSchedule</url-pattern> </servlet-mapping> <servlet> <servlet-name>ScheduleUpdate</servlet-name> <servlet-class>ScheduleUpdate1</servlet-class> </servlet> <servlet-mapping> <servlet-name>ScheduleUpdate</servlet-name> <url-pattern>/ScheduleUpdate</url-pattern> </servlet-mapping> <servlet> <servlet-name>DeleteCheck</servlet-name> <servlet-class>DeleteCheck1</servlet-class> </servlet> <servlet-mapping> <servlet-name>DeleteCheck</servlet-name> <url-pattern>/DeleteCheck</url-pattern> </servlet-mapping> <servlet> <servlet-name>ScheduleDelete</servlet-name> <servlet-class>ScheduleDelete1</servlet-class> </servlet> <servlet-mapping> <servlet-name>ScheduleDelete</servlet-name> <url-pattern>/ScheduleDelete</url-pattern> </servlet-mapping> <servlet> <servlet-name>LoginPage</servlet-name> <servlet-class>LoginPage1</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginPage</servlet-name> <url-pattern>/LoginPage</url-pattern> </servlet-mapping> </web-app>
それではブラウザで「http://localhost:8080/schedule/MonthView」へアクセスします。フィルタが設定されているため「AuthFilter」サーブレットが先に実行されます。認証の有無がチェックされますが認証が行われていませんので次のようにログイン画面が表示されます。
では次のページで実際にユーザー認証処理を行う部分を作成します。
( Written by Tatsuo Ikura )