前回までに,
そこで今回は,
ユーザセッションにアクセスする
サーブレットでプログラムを作るとき,
とはいえ,
この仕組みがあるために,
しかしながら,
Wicketのユーザセッションは,
Wicketでは独自のSessionサブクラスに, サンプルプログラムでは Wicketでは, リスト1 newSessionメソッドのオーバーライド WicketApplicationクラスは, Wicketはユーザセッションをはじめて使用する時に, ユーザがTwitterにログインできた場合, ユーザがログイン成功すると, リスト2 Twitterオブジェクトの作成とログインチェック Twitterクラスは, ここでは, Twitterへのログインチェックは, login()メソッドはUserオブジェクトを取得できればログイン成功と見なしてtrueを返します。逆に, ポイントとして, AppSessionには, お仕着せのHttpSessionをただ使うだけでなく,独自のセッションクラスを設定する
@Override
public Session newSession(Request request, Response response) {
return new AppSession(request);
}
ログイン状態を保存する
private Twitter twitterSession;
private User twitterUser;
private String lastUnauthorizedMessage;
(中略)
public boolean login(String userName, String password) {
Twitter client = new TwitterClient(userName, password);
try {
User user = client.verifyCredentials();
if(user != null) {
twitterUser = user;
twitterSession = client;
return true;
}
} catch (TwitterException ex) {
if(ex.getStatusCode() == HttpServletResponse.SC_UNAUTHORIZED) {
lastUnauthorizedMessage = ex.getMessage();
return false;
}
}
return false;
}