web.xmlとスタイルシートの用意
これで必要なクラスはできました。後は、Webページ(WebPageクラスとテンプレート)を作っていくわけですが、その前に、それ以外に必要となるものを準備しておきましょう。まずはweb.xmlへの追記です。
<filter>
<filter-name>wickletFilter</filter-name>
<filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
<init-param>
<param-name>applicationClassName</param-name>
<param-value>jp.tuyano.AuthApp</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>wickletFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<web-app>にこのようにタグを追記しておきます。applicationClassNameには、jp.tuyano.AuthAppを指定しておきます。続いて、各ページの表示に統一感を持たせるため、スタイルシートを作成しておきましょう。
body {
background-color: #FFF0FF;
font-size: 10pt;
color: #000099;
}
h1 {
background-color: #CCAAFF;
border-style: none none solid solid;
border-width: 0px 0px 2px 5px;
padding: 1px 5px 1px 5px;
font-size: 12pt;
color: #330000;
}
p {
font-size: 10pt;
color: #606060;
}
これは「WebContent」内に「style.css」というファイル名で用意します。WebページのテンプレートなどはJavaのクラスと同じパッケージ内におきますが、スタイルシートのように、ページ内にリンクしておく静的ファイルは、そのままWebContentに作成しておけば、そのまま利用できます。イメージファイルなどの類いも同様に考えていいでしょう。
ログインページの作成
では、Webページを作成しましょう。まずは、ログインページからです。ここでは「AuthSignInPage」という名前で用意しましょう。まずはテンプレートです。jp.tuyanoパッケージに「AuthSignInPage.html」というファイル名で用意します。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>Sign in</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<h1>Sign in Page.</h1>
<p>※ユーザー名とパスワードを入力してください。</p>
<table border="1">
<tr><td wicket:id="signInPanel"></td></tr>
</table>
</body>
</html>
ここでは、wicket:id="signInPanel"を指定したタグがあるだけで、フォームなどの類いはまったくありません。実は、wicket-auth-rolesには、ログインページがあらかじめ用意されており、それを利用することでまったくインターフェースなどを作成することなくページが作れるのです。続いて「AuthSignInPage.java」のソースコードもあげておきましょう。
package jp.tuyano;
import org.apache.wicket.authentication.pages.SignInPage;
public class AuthSignInPage extends SignInPage {
public AuthSignInPage(){}
}
こちらも、ただクラスを定義しておくだけで、何も内容はありません。通常、WebページはWebPageクラスを継承して作成しますが、ログインページはSignInPageを継承します。こうするだけで、自動的にwicket:id="signInPanel"のタグにログインのパネルをはめ込み、ログインのための処理が使えるようになるのです。
このAuthSignInPageは、ユーザー名とパスワード、それに「ユーザー名を記憶する」というチェックボックスのあるフォームを自動生成して表示します。またパスワードが空だとメッセージが表示されたり、ユーザー名が不正だと再入力となるなど基本的なバリデーション機能も備えています。

