• 検索結果がありません。

業務プログラムから帳票管理 GUI を呼び出すには

ドキュメント内 EUR システム構築ガイド (ページ 45-49)

3.4  JSP,Java などを使用する

3.4.3  業務プログラムから帳票管理 GUI を呼び出すには

ユーザの認証情報(ユーザ名と確認キー)を業務プログラムと帳票管理 GUI とで連携させることで,[ユー ザの設定]画面の表示を省略できます。これにより,帳票管理 GUI を利用するたびに,ユーザ名および確 認キーを入力する手間を省けます。

ユーザの認証情報の連携には,ブラウザの Cookie を使用します。システムへのログイン時に入力した,

ユーザ ID やパスワードなどの認証情報を,ブラウザの Cookie に保存しておきます。帳票管理 GUI の起

動時に,Cookie に保存された認証情報を読み込み,ユーザとして設定します。これにより,ユーザ名お よび確認キーを入力することなく,帳票管理 GUI を利用できます。

(1) 準備しておくこと

次のどちらかの方法で,システムへのログイン時に入力するユーザの認証情報を Cookie の NAME パラ メタに設定する仕組みを準備します。

• シングルサインオン製品など,ユーザの認証情報を管理できる製品を導入する。

• Java サーブレットや JavaScript などを使用して,システムへのログインフォームを作成し,ユーザの 認証情報を事前に取得する。

ユーザの認証情報を設定する Cookie の NAME パラメタを次の表に示します。

表 3‒3 ユーザの認証情報を設定する Cookie の NAME パラメタ

項番 パラメタ名 データ型 説明

1 EURPM_UserName String ユーザ名を 80 バイト以内で指定します。制御コード(0x00〜

0x1F,0x7F〜0x9F),「"」,「#」,「&」,「+」,「\」,および

「,」は指定できません。

80 バイトを超えて指定した場合は,デフォルトユーザとして 動作します。

2 EURPM_CheckString String ユーザ名に対応する確認キーを,80 バイト以内で指定します。

制御コード(0x00〜0x1F,0x7F〜0x9F),「"」,「#」,「&」,

「+」,「\」,および「,」は指定できません。

EURPM_CheckString パラメタは,EURPM_UserName パ ラメタが指定されている場合だけ有効になります。

80 バイトを超えて指定した場合は,デフォルトユーザとして 動作します。

3 EURPM_DefaultUserFlg String デフォルトユーザを設定する場合に,「YES」と指定します。

EURPM_DefaultUserFlg パラメタは,EURPM_UserName パラメタが指定されていないときだけ有効になります。

「YES」以外の値を指定した場合,または値を指定しなかった 場合は,[ユーザの設定]画面が表示されます。

なお,Cookie の NAME パラメタに値を設定するときは,URL エンコードを実施してください。URL エ ンコードを実施しないと,ユーザ名および確認キーを正しく設定できません。

Java サーブレットを使用するとき URLEncode.encode()

JavaScript を使用するとき encodeURIComponent()

(2) コーディング例

ユーザ名と確認キーを Cookie に設定するコーディング例を次に示します。

(a) Java サーブレットの場合

ログインフォームから送信されたユーザ名(UserName)と確認キー(CheckString)を取得し,Cookie として保存します。

public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException{

res.setContentType("text/html; charset=UTF-8"); // エンコード方式 req.setCharacterEncoding("UTF-8"); // エンコード方式 // ユーザ名を取得する

String strUserName = req.getParameter("UserName");

// 確認キーを取得する

String strPassword = req.getParameter("CheckString");

// Cookieに保存する値をURLエンコードする

String strEncUser = URLEncoder.encode(strUserName , "UTF-8");

String strEncPass = URLEncoder.encode(strPassword , "UTF-8");

// ユーザ名のCookieのNAMEパラメタを作成する

Cookie ckEURPMUser = new Cookie("EURPM_UserName " , strEncUser);

// ユーザ名のCookieを保存する res.addCookie(ckEURPMUser);

// 確認キーのCookieのNAMEパラメタを作成する

Cookie ckEURPMCheck = new Cookie("EURPM_CheckString " , strEncPass);

// 確認キーのCookieを保存する res.addCookie(ckEURPMCheck);

} }

(b) JavaScript の場合

[Cookie 書き込み]ボタンをクリックすると,[ユーザ名]テキストボックスおよび[確認キー]テキス トボックスに入力した値が Cookie に書き込まれます。

<HTML>

<HEAD>

<TITLE>Cookieの設定例</TITLE>

</HEAD>

<BODY><SCRIPT language="JavaScript">

<!--// --==*==--// Cookieへの書き込み

//   引数:kword=キーワード  kdata=データ

// --==*==--function CookieWrite(kword, kdata)

{

// Cookieに保存する値をURLエンコードして保存する

document.cookie = kword + "=" + encodeURIComponent (kdata);

}

//-->

</SCRIPT>

<P>Cookieの設定例</P>

<FORM name="cookie01">キーワード<BR>

ユーザ名 = <INPUT size="20" type="text" name="dat">

<BR>

確認キー = <INPUT size="20" type="text" name="dat">

<BR>

<INPUT type="button" value="Cookie書き込み"

onclick='CookieWrite("EURPM_UserName",dat[0].value,1);' 'CookieWrite("EURPM_CheckString",dat[1].value,1);'>

<BR>

</FORM>

</BODY>

</HTML>

ドキュメント内 EUR システム構築ガイド (ページ 45-49)