| Ajaxフレームワーク ユーザーズガイド |
目次
索引
![]()
|
| 第5章 アプリケーションの開発 | > 5.10 アプリケーションの開発例(マッシュアップ) |
Eclipseを利用して、ビジネスクラスを作成します。
Eclipseの操作方法については、“ビジネスクラスの作成(Eclipse)”を参照してください。
ビジネスクラス作成時には、以下の情報を入力します。
|
入力データ |
入力情報 |
コマンド |
メソッド |
復帰値型 |
|---|---|---|---|---|
|
入力データなし |
指定しない |
指定しない |
startup |
void |
|
データBean |
クラス名: CalendarBean |
login |
login |
object |
|
入力データなし |
指定しない |
logout |
logout |
void |
作成されたビジネスクラスに、以下の記述を追加します。
startupメソッドの記述内容
/* 初期化処理 */
public void startup(DispatchContext context) {
CalendarBean calendarBean = new CalendarBean();
context.setResponseBean("body", calendarBean);
} |
loginメソッドの記述内容
/* ログイン処理 */
public Object login(DispatchContext context, calendar.CalendarBean dataBean) {
String globalId = dataBean.getUserid(); // 入力値:ユーザID
String password = dataBean.getPassword(); // 入力値:パスワード
String serviceId = "PrivateCalendar"; // サービス名:"PrivateCalendar"(固定)
// ログイン処理(入力値によるログイン可否)を実行
if(doLogin(globalId, password) == false){
// ログイン失敗時の処理
dataBean.setUserid("");
dataBean.setPassword("");
return dataBean;
}
// ログイン成功時、以下の処理を実行
// ユーザ管理簿からglovalIdとserviceIdをもとに基本認証情報を取得
BasicAuthInfo basicinfo = BasicAuthDB.getBasicAuthInfoFromDB(globalId, serviceId);
// 基本認証情報からユーザID、パスワードを取得
String basic_uid = basicinfo.getUserid();
String basic_pwd = basicinfo.getPassword();
// 基本認証情報の生成
BasicAuth bAuth = new BasicAuth();
bAuth.setGlobalID(globalId);
try {
bAuth.setUserID(basic_uid);
bAuth.setPassword(basic_pwd);
} catch (MUEncryptException e) {
// 暗号化の設定に対する例外の発生・または暗号化アルゴリズムの初期化に失敗
dataBean.setUserid("");
dataBean.setPassword("");
return dataBean;
}
// サービス認証情報の生成
ServiceAuth sAuth = new ServiceAuth(serviceId);
// サービス認証情報に基本認証情報を格納
sAuth.setAuth(bAuth);
// サービス認証情報リストの生成
AuthorizationList authlist = new AuthorizationList(globalId);
// 認証情報リストにサービス認証情報を格納
authlist.add(sAuth);
// セションの取得
HttpSessionProfile sessionprofile = (HttpSessionProfile)context.getSessionProfile();
HttpSession session = sessionprofile.getSession();
// セションに認証情報リストを格納
session.setAttribute(Authorization.SESSION_AUTHORIZATION_KEY, authlist);
return dataBean;
} |
logoutメソッドの記述内容
/* ログアウト処理 */
public void logout(DispatchContext context) {
// セションの取得
HttpSessionProfile sessionprofile = (HttpSessionProfile)context.getSessionProfile();
HttpSession session = sessionprofile.getSession();
// セション情報をクリア
session.removeAttribute(Authorization.SESSION_AUTHORIZATION_KEY);
} |
doLoginメソッド(注1)の記述内容
/* 入力された情報でのログイン処理 */
private boolean doLogin(String globalId, String password) {
// ユーザID/パスワードの照合
if(globalId.equals("gid001") && password.equals("001") ||
:(省略)
globalId.equals("gid005") && password.equals("005"))
{
return true;
}
// ユーザID/パスワードが違っている場合
else{
return false;
}
} |
注1) このメソッドは自動生成されません。
BasicAuthDBクラス(注2)の記述内容
/**
* 仮想の基本認証データベース(ユーザ管理簿)です。
*/
public class BasicAuthDB {
// 基本認証データベース
private static final BasicAuthInfo[] basicDB = {
// 基本認証情報(グローバルID、サービスID、ユーザID、パスワード)
new BasicAuthInfo("gid001","PrivateCalendar","user1","user1"),
:(省略)
new BasicAuthInfo("gid005","PrivateCalendar","user5","user5")
};
/** グローバルID、サービスIDをキーに基本認証データベースから認証処理を取得します。 */
public static BasicAuthInfo getBasicAuthInfoFromDB(String globalid, String serviceid){
// データベース内の検索
for(int i=0; i<basicDB.length; i++){
// 一致した場合、認証情報を返す
if(basicDB[i].isTargetBasicAuthinfo(globalid, serviceid) == true){
return basicDB[i];
}
}
// 一致しない場合、nullを返す
return null;
}
} |
注2) このクラスは自動生成されません。
BasicAuthInfoクラス(注3)の記述内容
/** 基本認証情報クラスです。 */
public class BasicAuthInfo {
private String globalid;
private String serviceid;
private String userid;
private String password;
/** コンストラクタです。 */
public BasicAuthInfo(String gid,String sid,String uid,String pw){
globalid = gid;
serviceid = sid;
userid = uid;
password = pw;
}
public String getGlobalid(){
return globalid;
}
public String getServiceid(){
return serviceid;
}
public String getUserid(){
return userid;
}
public String getPassword(){
return password;
}
/** グローバルID、サービスIDの値と一致した場合、true を返します。 */
public boolean isTargetBasicAuthinfo(String gid, String sid){
if(globalid.equals(gid) && serviceid.equals(sid)){
return true;
}
else{
return false;
}
}
} |
注3) このクラスは自動生成されません。
ログイン情報および認証情報データベースの内容(注4)
サンプルアプリケーションのログイン情報です。
ログインユーザID ログインパスワード gid001 001 gid002 002 gid003 003 gid004 004 gid005 005 |
基本認証サービス(私用カレンダアプリケーション)の認証情報です。GLOBALID(入力されたユーザID)とSERVICEID("PrivateCalendar")をキーに、認証情報(USERIDとPASSWORD)を取得します。
以下の情報は、内部情報として保持されており、認証サービスにアクセスする際に利用されます。
GLOBALID SERVICEID USERID PASSWORD gid001 PrivateCalendar user1 user1 gid002 PrivateCalendar user2 user2 gid003 PrivateCalendar user3 user3 gid004 PrivateCalendar user4 user4 gid005 PrivateCalendar user5 user5 |
注4) 本来は、RDBやLDAPなどで管理、運用されるデータです。
Eclipseを利用してビジネスクラスを作成すると、自動的にコマンドマップ(commands.map)が作成されます。
コマンドマップの記述内容
# 初期化処理 ;=calendar.CalendarHandler.startup # ログイン処理実行 calendar.CalendarBean;login=calendar.CalendarHandler.login # ログアウト処理実行 ;logout=calendar.CalendarHandler.logout |
コマンドマップの詳細は、“Apcoordinator ユーザーズガイド”を参照してください。
ページマップ(pages.map)に必要な定義を追加します。
ページマップの記述内容
# pages.map calendar.CalendarBean;=mainPage.jsp |
ページマップの詳細は、“Apcoordinator ユーザーズガイド”を参照してください。
目次
索引
![]()
|