Hitachi

EUR システム構築ガイド(UNIX(R)用)


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

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

ユーザの認証情報の連携には,ブラウザのCookieを使用します。システムへのログイン時に入力した,ユーザIDやパスワードなどの認証情報を,ブラウザのCookieに保存しておきます。帳票管理GUIの起動時に,Cookieに保存された認証情報を読み込み,ユーザとして設定します。これにより,ユーザ名および確認キーを入力することなく,帳票管理GUIを利用できます。

〈この項の構成〉

(1) 準備しておくこと

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

ユーザの認証情報を設定する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>