クラス UserInfo
- java.lang.Object
-
- org.opengion.hayabusa.resource.UserInfo
-
- すべての実装されたインタフェース:
Comparable<UserSummary>
,Cleanable
,UserSummary
public class UserInfo extends Object implements UserSummary, Cleanable
ユーザー情報の取得の為のインターフェースを実装したクラスです。 ログイン時のパスワードのチェックや,国名の識別ID,ポータルページのURLなど 個人情報を管理させます。 特に,画面アクセス時の権限やメールの送信,各画面にユーザー情報を表示したり, エラー時のログファイル,テンポラリディレクトリなども管理します。 {@USER.XXXX} で、XXXX 部に、UserInfo オブジェクトで定義されている 属性情報を取り出すことが出来ます。 以下の値は UserInfo オブジェクトの項目から取得します。 ・JNAME ユーザー日本語名称 ・ID ユーザーID ・INFO ユーザー情報(ユーザーID:日本語名称) ・LANG 言語 ・ROLES ロール ・IPADDRESS IPアドレス ・LOGINTIME ログイン時刻 ・LASTACCESS 最終アクセス画面ID 以下の値はあらかじめ、動的に作成されます。 ・YMD 8byte の今日のシステム日付 ・YMDH 14byte の今日のシステム日時 それ以外は,外部より設定された値です。 従来は、USER.IDNO はUSER.ID が5Byte以上の時のみ先頭1文字を除いたユーザーIDとして オブジェクト項目からの取得でしたが、現在は初期値として設定してあります。 外部より再設定可能になっています。- 導入されたバージョン:
- JDK5.0,
-
-
フィールドの概要
フィールド 修飾子とタイプ フィールド 説明 static boolean
USE_DB_APPLICATION_INFO
コネクションにアプリケーション情報を追記するかどうか指定
-
メソッドの概要
すべてのメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 void
addEditConfig(String guikey, String editName, DBEditConfig config)
指定の画面ID、編集名で編集設定オブジェクトを追加します。void
clear()
初期化(クリア)します(org.opengion.fukurou.util.Cleanable の実装)。int
compareTo(UserSummary object)
自然比較メソッド インタフェース Comparable の 実装です。void
deleteEditConfig(String guikey, String editName)
指定の画面ID、編集名の編集設定を削除します。boolean
equals(Object object)
このオブジェクトと他のオブジェクトが等しいかどうかを示します。byte
getAccessBitMode(RoleMode other)
指定のユーザーロールに対する最終的なアクセス条件を取得します。ApplicationInfo
getApplicationInfo(String gamenId, String prgId)
アクセスログ取得の為,ApplicationInfoオブジェクトを返します。String
getAttribute(String key)
UserInfoの属性文字列を取得します。DBEditConfig
getEditConfig(String guikey, String editName)
画面ID、編集名より編集設定オブジェクトを返します。DBEditConfig[]
getEditConfigs(String guikey)
編集設定オブジェクトの配列を返します。HybsEntry[]
getEntrys()
UserInfoの属性文字列の内部情報を返します。Map<String,FavoriteGUIData>
getFavoriteMap()
ユーザー個別のお気に入り画面オブジェクトのマップを取得します。GUIInfo
getGUIInfo(String gamenId)
ユーザー個別の画面オブジェクトを取得します。GUIInfo[]
getGUIInfos()
ユーザー個別の画面オブジェクトのマップを取得します。String
getInfo()
オブジェクトの識別子として,ユーザー情報を返します。String
getIPAddress()
ユーザーのログインIPアドレスを取得します。String
getJname()
ユーザー情報 名称(日本語)を取得します。String
getLang()
ユーザー情報ロケール(言語)を取得します。String
getLastRequestValue(String key)
最後に使用されたリクエスト変数の値を、取得します。long
getLoginTime()
ユーザーログイン時刻を取得します。String
getParameter(String key)
ユーザーパラメータを取得します。RoleMode
getRoleMode()
ロールモード情報を取得します。String
getRoles()
ユーザー情報 ロール(役割)を取得します。String
getSelectedEdit(String guikey)
指定の画面IDに対して選択済みの編集名を返します。String
getUserID()
ユーザーを取得します。int
hashCode()
オブジェクトのハッシュコード値を返します。boolean
isAccess(String role)
このユーザーの権限で、指定のロールが許可されているかどうかを判定します。boolean
isGUIInfoSet()
画面オブジェクトのマップがセット済みかどうかを取得します。boolean
isValidAddr(String addr)
アクセスが許可されているアドレスかどうかをチェックします。void
removeAttribute(String key, boolean save)
UserInfoの属性文字列を削除します。void
savePermanently(String key, String value, boolean isCommon)
userInfoにセットされた値/キーをDBに登録します。void
setAccessGui(GUIInfo guiInfo)
このユーザーでアクセスされた画面オブジェクトを設定します。void
setAttribute(String key, String value, boolean save)
UserInfoの属性文字列を登録します。void
setGUIMap(Map<String,GUIInfo> newGuiMap, Set<String> newForbidAddrSet)
ユーザー個別の画面オブジェクトのマップをセットします。void
setLang(String newLang)
ユーザー情報ロケール(言語)をセットします。void
setLastRequestMap(Map<String,String[]> reqMap)
最後に使用されたリクエスト変数の値を、Mapを読み取って登録します。void
setLastRequestValue(String key, String val)
最後に使用されたリクエスト変数の値を、設定します。String
toString()
オブジェクトの識別子として,詳細なユーザー情報を返します。
-
-
-
フィールドの詳細
-
USE_DB_APPLICATION_INFO
public static final boolean USE_DB_APPLICATION_INFO
コネクションにアプリケーション情報を追記するかどうか指定
-
-
メソッドの詳細
-
getParameter
public String getParameter(String key)
ユーザーパラメータを取得します。 ユーザーパラメーターは、通常、GE16 テーブルより取得します。 // * 取得するSQL文は、SystemData の USER_PARAMETER_SQL に記述しておきます。 ユーザーパラメータに、値が存在しない場合は、システムリソースより 取得します。- パラメータ:
key
- パラメータキー- 戻り値:
- パラメータ値(ユーザーパラメータになければ、システムリソースより取得
-
getLoginTime
public long getLoginTime()
ユーザーログイン時刻を取得します。- 定義:
getLoginTime
インタフェース内UserSummary
- 戻り値:
- ログイン時刻
-
getIPAddress
public String getIPAddress()
ユーザーのログインIPアドレスを取得します。- 定義:
getIPAddress
インタフェース内UserSummary
- 戻り値:
- IPアドレス
-
getUserID
public String getUserID()
ユーザーを取得します。- 定義:
getUserID
インタフェース内UserSummary
- 戻り値:
- ユーザー
-
getLang
public String getLang()
ユーザー情報ロケール(言語)を取得します。- 定義:
getLang
インタフェース内UserSummary
- 戻り値:
- ロケール(言語)
-
getJname
public String getJname()
ユーザー情報 名称(日本語)を取得します。- 定義:
getJname
インタフェース内UserSummary
- 戻り値:
- 名称(日本語)
-
getRoles
public String getRoles()
ユーザー情報 ロール(役割)を取得します。- 定義:
getRoles
インタフェース内UserSummary
- 戻り値:
- ロール(役割)
-
getRoleMode
public RoleMode getRoleMode()
ロールモード情報を取得します。- 戻り値:
- ロールモード情報
-
getInfo
public String getInfo()
オブジェクトの識別子として,ユーザー情報を返します。- 定義:
getInfo
インタフェース内UserSummary
- 戻り値:
- ユーザー情報
-
setAttribute
public void setAttribute(String key, String value, boolean save)
UserInfoの属性文字列を登録します。 予約文字(JNAME,ID,INFO,LANG,ROLES,IPADDRESS,LOGINTIME,LASTACCESS,YMD,YMDH,LASTGAMENNM)を 登録しようとした場合は、エラーにします。 ※ 属性文字列キーが不正の場合、HybsSystemException が、throw されます。- パラメータ:
key
- キーvalue
- 値save
- ユーザー永続化情報(GE20)に情報を保存するか
-
getAttribute
public String getAttribute(String key)
UserInfoの属性文字列を取得します。 以下の値は UserInfo オブジェクトの項目から取得します。・JNAME ユーザー日本語名称 ・ID ユーザーID ・IDNO (初期値)USER.ID が5Byte以上の時のみ先頭1文字を除いたユーザーID ・INFO ユーザー情報(ユーザーID:日本語名称) ・LANG 言語 ・ROLES ロール ・IPADDRESS IPアドレス ・LOGINTIME ログイン時刻 ・LASTACCESS 最終アクセス画面ID ・LASTGAMENNM 最終アクセス画面名 以下の値はあらかじめ、動的に作成されます。 ・YMD 8byte の今日のシステム日付 ・YMDH 14byte の今日のシステム日時
それ以外は,外部より設定された値です。- 定義:
getAttribute
インタフェース内UserSummary
- パラメータ:
key
- キー- 戻り値:
- UserInfoの属性文字列
- 関連項目:
getAttribute( String )
-
getEntrys
public HybsEntry[] getEntrys()
UserInfoの属性文字列の内部情報を返します。 この内部情報の中には、UserInfo 自身の管理情報も含めます。 独自管理キーは、JNAME,ID,IDNO,INFO,LANG,ROLES,IPADDRESS,LOGINTIME,LASTACCESS,LASTGAMENNM です。 それ以外は,外部より設定された値です。- 戻り値:
- 属性文字列のHybsEntryオブジェクト配列
-
removeAttribute
public void removeAttribute(String key, boolean save)
UserInfoの属性文字列を削除します。- パラメータ:
key
- キーsave
- ユーザー永続化情報(GE20)から情報を削除するか
-
setGUIMap
public void setGUIMap(Map<String,GUIInfo> newGuiMap, Set<String> newForbidAddrSet)
ユーザー個別の画面オブジェクトのマップをセットします。- パラメータ:
newGuiMap
- 画面オブジェクトのマップnewForbidAddrSet
- アクセス禁止アドレスセット
-
getGUIInfo
public GUIInfo getGUIInfo(String gamenId)
ユーザー個別の画面オブジェクトを取得します。 アクセスできない画面IDが指定されたときは、null が返ります。- パラメータ:
gamenId
- 画面ID- 戻り値:
- 画面オブジェクト
-
getGUIInfos
public GUIInfo[] getGUIInfos()
ユーザー個別の画面オブジェクトのマップを取得します。- 戻り値:
- 画面オブジェクトの配列
-
isValidAddr
public boolean isValidAddr(String addr)
アクセスが許可されているアドレスかどうかをチェックします。 チェックの方法は、ブラックリスト方式です。 画面リソースに登録された一覧の内、そのユーザーが許可されていないアドレスに 対してのみfalseが返ります。 画面リソースに登録されていないアドレスや、アドレスにURLの区切り文字(/)が 含まれている場合はチェックされません。(trueが返ります)- パラメータ:
addr
- チェック対象のアドレス- 戻り値:
- アクセスが許可されているアドレスかどうか
-
getFavoriteMap
public Map<String,FavoriteGUIData> getFavoriteMap()
ユーザー個別のお気に入り画面オブジェクトのマップを取得します。- 戻り値:
- お気に入り画面オブジェクトのマップ
-
isGUIInfoSet
public boolean isGUIInfoSet()
画面オブジェクトのマップがセット済みかどうかを取得します。- 戻り値:
- 画面オブジェクトのマップがセット済みかどうか(true:セット済み / false:未セット)
-
getAccessBitMode
public byte getAccessBitMode(RoleMode other)
指定のユーザーロールに対する最終的なアクセス条件を取得します。 アクセス条件は、複数あるユーザーロールの中で、最大のアクセス条件を算出します。 例えば、AAA(-r)|BBB(-w)|CCC(mr) の3つのロール/モードが設定されている場合、 ユーザーが、AAA だけの場合は、-r ですが、AAA|BBB を持っている場合は、-w になります。 さらに、BBB|CCC と持っている場合は、(-w:書き込み許可)と(mr:メニューから読取許可)の 権限により、mw:メニューからの書き込み許可が与えられます。 モード指定がある場合は、AND演算になります。 例えば、AAA(-r)|BBB(-w)|CCC(mr) と BBB|CCC(-r) の場合、(-r)+(-w)+(mr)*(-r)=-w に なります。ロールは、OR ですが、モードは、同一ロールでのAND になります。 実際には、メニュー表示の可否は、ポップアップ系によく用いられますので、上記のような 許可が実際にあるかどうかは不明ですが、すべてのモードのOR条件での結合になります。- パラメータ:
other
- ロールモード- 戻り値:
- アクセスビット
-
isAccess
public boolean isAccess(String role)
このユーザーの権限で、指定のロールが許可されているかどうかを判定します。- パラメータ:
role
- チェックを行うロール- 戻り値:
- アクセスできる(true)/出来ない(false)
-
clear
public void clear()
初期化(クリア)します(org.opengion.fukurou.util.Cleanable の実装)。 画面オブジェクトのマップをクリアし、セット済みフラグを未セットに設定します。 システムリソースの USE_ACCESS_TOKEI_TABLE が true の場合は、 画面アクセス状況を、アクセス統計テーブル(GE15)に書き込みます。 // * ユーザー単位のパラメータは、システムリソースの USER_PARAMETER_SQL で // * 定義された値を検索して、取り込みます。
-
getEditConfig
public DBEditConfig getEditConfig(String guikey, String editName)
画面ID、編集名より編集設定オブジェクトを返します。 また、ここで指定された編集名がこの画面での選択済み編集として登録されます。- パラメータ:
guikey
- 画面IDeditName
- 編集名- 戻り値:
- 編集設定オブジェクト
-
getEditConfigs
public DBEditConfig[] getEditConfigs(String guikey)
編集設定オブジェクトの配列を返します。 DBEditConfigManagerを直接返していましたが、それを廃止します。- パラメータ:
guikey
- 画面ID- 戻り値:
- 編集設定オブジェクトの配列
-
addEditConfig
public void addEditConfig(String guikey, String editName, DBEditConfig config)
指定の画面ID、編集名で編集設定オブジェクトを追加します。 既に登録されている場合は、既存の編集情報を更新します。 ※ 廃止予定ですが、対応が間に合わないため、暫定的に残しています。- パラメータ:
guikey
- 画面IDeditName
- 編集名config
- 編集設定オブジェクト
-
deleteEditConfig
public void deleteEditConfig(String guikey, String editName)
指定の画面ID、編集名の編集設定を削除します。 ※ 廃止予定ですが、対応が間に合わないため、暫定的に残しています。- パラメータ:
guikey
- 画面IDeditName
- 編集名
-
getSelectedEdit
public String getSelectedEdit(String guikey)
指定の画面IDに対して選択済みの編集名を返します。- パラメータ:
guikey
- 画面ID- 戻り値:
- 選択済み編集名
-
setLastRequestMap
public void setLastRequestMap(Map<String,String[]> reqMap)
最後に使用されたリクエスト変数の値を、Mapを読み取って登録します。 読み取り対象は、先に lastRequestMap に登録済みのキーだけです。 そのため、{@LAST.XXXX} で値を要求されたときに、キーが 登録されていない場合は、キーだけ(値 nullで)登録しておきます。- パラメータ:
reqMap
- リクエスト変数のMap
-
setLastRequestValue
public void setLastRequestValue(String key, String val)
最後に使用されたリクエスト変数の値を、設定します。 この処理は、{@LAST.XXXX} は、リクエスト値があれば、それが優先的に 使われます。- パラメータ:
key
- リクエストキーval
- 設定値
-
getLastRequestValue
public String getLastRequestValue(String key)
最後に使用されたリクエスト変数の値を、取得します。 画面で簡素に使用できるように、少し特殊な処理を行います。 query 画面で {@LAST.XXXX} を呼ぶと、lastRequestMap にキーがなければ、 キーだけ先に追加します。あれば、値を取得するだけです。 そして、result画面で command="NEW" の場合のみ、リクエスト情報のMapから、 lastRequestMap に持っているキーで(NULLでない場合は)上書きセットします。 キャッシュ量を減らすことと、処理の対象キーを減らす意味を持っています。- パラメータ:
key
- リクエストキー- 戻り値:
- 設定値
-
getApplicationInfo
public ApplicationInfo getApplicationInfo(String gamenId, String prgId)
アクセスログ取得の為,ApplicationInfoオブジェクトを返します。- パラメータ:
gamenId
- 実行中の画面IDprgId
- 実行中のプログラムID- 戻り値:
- ApplicationInfoオブジェクト
-
compareTo
public int compareTo(UserSummary object)
自然比較メソッド インタフェース Comparable の 実装です。 ユーザーの順序は、ユーザーID そのものの順序であらわされます。 同一ユーザーの場合は,ログインタイムの順番になります。- 定義:
compareTo
インタフェース内Comparable<UserSummary>
- パラメータ:
object
- 比較対象のObject- 戻り値:
- このオブジェクトが指定されたオブジェクトより小さい場合は負の整数、等しい場合はゼロ、大きい場合は正の整数
-
equals
public boolean equals(Object object)
このオブジェクトと他のオブジェクトが等しいかどうかを示します。 インタフェース Comparable の 実装に関連して、再定義しています。 ユーザーは、ユーザーIDが等しく、かつ ログイン時刻が同一の場合に、 等しいと判断されます。
-
hashCode
public int hashCode()
オブジェクトのハッシュコード値を返します。 このメソッドは、java.util.Hashtable によって提供されるような ハッシュテーブルで使用するために用意されています。 equals( Object ) メソッドをオーバーライトした場合は、hashCode() メソッドも 必ず 記述する必要があります。 ここでは、ログイン時刻(long 値)の上位 32 ビットと下位 32 ビットの排他的論理和 を求めています。 (int)(this.longValue()^(this.longValue()>>>32)) ※ hashCode の 同一オブジェクトには同一ハッシュコードという規則と 発生頻度,ランダム性を考慮すれば、ログイン時刻そのもの(long)の ハッシュコードでも運用上は全く問題ないと考えられます。
-
savePermanently
public void savePermanently(String key, String value, boolean isCommon)
userInfoにセットされた値/キーをDBに登録します。 既にキーが存在している場合は、既存データを更新し、なければ追加します。- パラメータ:
key
- キーvalue
- 値isCommon
- ユーザーID='*'(全ユーザー公開)として登録するかどうか
-
setAccessGui
public void setAccessGui(GUIInfo guiInfo)
このユーザーでアクセスされた画面オブジェクトを設定します。 これは、画面アクセスの履歴(順番)を管理する機能に使います。- パラメータ:
guiInfo
- 画面オブジェクト
-
-