3.4.3 業務プログラムから帳票管理GUIを呼び出すには
ユーザの認証情報(ユーザ名と確認キー)を業務プログラムと帳票管理GUIとで連携させることで,[ユーザの設定]画面の表示を省略できます。これにより,帳票管理GUIを利用するたびに,ユーザ名および確認キーを入力する手間を省けます。
ユーザの認証情報の連携には,ブラウザのCookieを使用します。システムへのログイン時に入力した,ユーザIDやパスワードなどの認証情報を,ブラウザのCookieに保存しておきます。帳票管理GUIの起動時に,Cookieに保存された認証情報を読み込み,ユーザとして設定します。これにより,ユーザ名および確認キーを入力することなく,帳票管理GUIを利用できます。
- 〈この項の構成〉
(1) 準備しておくこと
次のどちらかの方法で,システムへのログイン時に入力するユーザの認証情報をCookieのNAMEパラメタに設定する仕組みを準備します。
-
シングルサインオン製品など,ユーザの認証情報を管理できる製品を導入する。
-
JavaサーブレットやJavaScriptなどを使用して,システムへのログインフォームを作成し,ユーザの認証情報を事前に取得する。
ユーザの認証情報を設定する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>