openGionopenGion
5.3.6.0

org.opengion.hayabusa.resource
クラス UserInfo

java.lang.Object
  上位を拡張 org.opengion.hayabusa.resource.UserInfo
すべての実装されたインタフェース:
java.lang.Comparable<UserSummary>, Cleanable, UserSummary

public class UserInfo
extends java.lang.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として オブジェクト項目からの取得でしたが、現在は初期値として設定してあります。 外部より再設定可能になっています。

機能階層
リソース管理
バージョン
4.0
作成者
Kazuhiko Hasegawa
導入されたバージョン:
JDK5.0,

フィールドの概要
static boolean USE_DB_APPLICATION_INFO
          コネクションにアプリケーション情報を追記するかどうか指定
 
コンストラクタの概要
UserInfo(java.lang.String userID, java.lang.String lang, java.lang.String jname, java.lang.String roles, java.lang.String droles, java.lang.String systemId, java.lang.String ipAddress, ApplicationInfo appInfo)
          コンストラクター
 
メソッドの概要
 void addEditConfig(java.lang.String guikey, java.lang.String editName, DBEditConfig config)
          指定の画面ID、エディット名でエディット設定オブジェクトを追加します。
 void clear()
          初期化(クリア)します(org.opengion.fukurou.util.Cleanable の実装)。
 int compareTo(UserSummary object)
          自然比較メソッド インタフェース Comparable の 実装です。
 void deleteEditConfig(java.lang.String guikey, java.lang.String editName)
          指定の画面ID、エディット名のエディット設定を削除します。
 boolean equals(java.lang.Object object)
          このオブジェクトと他のオブジェクトが等しいかどうかを示します。
 byte getAccessBitMode(RoleMode other)
          指定のユーザーロールに対する最終的なアクセス条件を取得します。
 ApplicationInfo getApplicationInfo(java.lang.String gamenId, java.lang.String prgId)
          アクセスログ取得の為,ApplicationInfo オブジェクトを返します。
 java.lang.String getAttribute(java.lang.String key)
          UserInfoの属性文字列を取得します。
 java.lang.String getDataCondition(java.lang.String clm)
          指定されたカラムキーに対応するデータの条件式を返します。
 DBEditConfig getEditConfig(java.lang.String guikey, java.lang.String editName)
          画面ID、エディット名よりエディット設定オブジェクトを返します。
 DBEditConfig[] getEditConfigs(java.lang.String guikey)
          引数の画面で登録されているエディット設定を配列で返します。
 HybsEntry[] getEntrys()
          UserInfoの属性文字列の内部情報を返します。
 java.util.Map<java.lang.String,FavoriteGUIData> getFavoriteMap()
          ユーザー個別のお気に入り画面オブジェクトの配列を取得します。
 GUIInfo getGUIInfo(java.lang.String gamenId)
          ユーザー個別の画面オブジェクトを取得します。
 GUIInfo[] getGUIInfos()
          ユーザー個別の画面オブジェクトのマップを取得します。
 java.lang.String getInfo()
          オブジェクトの識別子として,ユーザー情報を返します。
 java.lang.String getIPAddress()
          ユーザーのログインIPアドレスを取得します。
 java.lang.String getJname()
          ユーザー情報 名称(日本語)を取得します。
 java.lang.String getLang()
          ユーザー情報ロケール(言語)を取得します。
 long getLoginTime()
          ユーザーログイン時刻を取得します。
 java.lang.String getParameter(java.lang.String key)
          ユーザーパラメータを取得します。
 RoleMode getRoleMode()
          ロールモード情報を取得します。
 java.lang.String getRoles()
          ユーザー情報 ロール(役割)を取得します。
 java.lang.String getSelectedEdit(java.lang.String guikey)
          指定の画面IDに対して選択済みのエディット名を返します。
 java.lang.String getUserID()
          ユーザーを取得します。
 int hashCode()
          オブジェクトのハッシュコード値を返します。
 boolean isAccess(java.lang.String role)
          このユーザーの権限で、指定のロールが許可されているかどうかを判定します。
 boolean isGUIInfoSet()
          画面オブジェクトのマップがセット済みかどうかを取得します。
 boolean isValidAddr(java.lang.String addr)
          アクセスが許可されているアドレスかどうかをチェックします。
 void removeAttribute(java.lang.String key, boolean save)
          UserInfoの属性文字列を削除します。
 void setAccessGui(GUIInfo guiInfo)
          このユーザーでアクセスされた画面オブジェクトを設定します。
 void setAttribute(java.lang.String key, java.lang.String value, boolean save)
          UserInfoの属性文字列を登録します。
 void setGUIMap(java.util.Map<java.lang.String,GUIInfo> newGuiMap, java.util.Set<java.lang.String> newForbidAddrSet)
          ユーザー個別の画面オブジェクトのマップをセットします。
 void setLang(java.lang.String newLang)
          ユーザー情報ロケール(言語)をセットします。
 void setSelectedEdit(java.lang.String guikey, java.lang.String editName)
          指定の画面IDに対して選択済みのエディット名を登録します。
 java.lang.String toString()
          オブジェクトの識別子として,詳細なユーザー情報を返します。
 
クラス java.lang.Object から継承されたメソッド
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

USE_DB_APPLICATION_INFO

public static final boolean USE_DB_APPLICATION_INFO
コネクションにアプリケーション情報を追記するかどうか指定

コンストラクタの詳細

UserInfo

public UserInfo(java.lang.String userID,
                java.lang.String lang,
                java.lang.String jname,
                java.lang.String roles,
                java.lang.String droles,
                java.lang.String systemId,
                java.lang.String ipAddress,
                ApplicationInfo appInfo)
コンストラクター

パラメータ:
userID - ユーザー
lang - 言語
jname - 日本語名称
roles - ロール
droles - データロール
systemId - システムID
ipAddress - IPアドレス
appInfo - ApplicationInfo
変更履歴:
3.0.0.1 (2003/02/14) ユーザー毎のエンコード指定方法を廃止します。
3.1.3.0 (2003/04/10) ユーザー情報から、エンコード情報を削除する。
3.4.0.3 (2003/09/10) "root","manager","admin" のロールを、すべて root 権限を与える。
3.8.5.3 (2006/06/30) USE_USER_IDNO_C_SAPLESS を判定条件に加える。
3.8.7.0 (2006/12/15) アクセスログ取得の為,ApplicationInfo オブジェクトを設定
4.3.0.0 (2008/07/04) ロールモードマルチ対応
4.4.0.0 (2009/08/02) データロール対応
5.3.6.0 (2011/06/01) GE20の読み込みをUserInfoFactoryから移動
メソッドの詳細

getParameter

public java.lang.String getParameter(java.lang.String key)
ユーザーパラメータを取得します。 ユーザーパラメーターは、通常、GE16 テーブルより取得します。 取得するSQL文は、SystemData の USER_PARAMETER_SQL に記述しておきます。 ユーザーパラメータに、値が存在しない場合は、システムリソースより 取得します。

パラメータ:
key - String パラメータキー
戻り値:
String パラメータ値(ユーザーパラメータになければ、システムリソースより取得

getLoginTime

public long getLoginTime()
ユーザーログイン時刻を取得します。

定義:
インタフェース UserSummary 内の getLoginTime
戻り値:
long ログイン時刻

getIPAddress

public java.lang.String getIPAddress()
ユーザーのログインIPアドレスを取得します。

定義:
インタフェース UserSummary 内の getIPAddress
戻り値:
String IPアドレス

getUserID

public java.lang.String getUserID()
ユーザーを取得します。

定義:
インタフェース UserSummary 内の getUserID
戻り値:
String ユーザー

getLang

public java.lang.String getLang()
ユーザー情報ロケール(言語)を取得します。

定義:
インタフェース UserSummary 内の getLang
戻り値:
String lang

setLang

public void setLang(java.lang.String newLang)
ユーザー情報ロケール(言語)をセットします。

パラメータ:
newLang - String
変更履歴:
5.1.4.0 (2010/03/01) lang を書き換え可能とする。

getJname

public java.lang.String getJname()
ユーザー情報 名称(日本語)を取得します。

定義:
インタフェース UserSummary 内の getJname
戻り値:
String jname

getRoles

public java.lang.String getRoles()
ユーザー情報 ロール(役割)を取得します。

定義:
インタフェース UserSummary 内の getRoles
戻り値:
String roles

getRoleMode

public RoleMode getRoleMode()
ロールモード情報を取得します。

戻り値:
RoleMode ロールモード情報
変更履歴:
4.3.0.0 (2008/07/04) 新規追加

getInfo

public java.lang.String getInfo()
オブジェクトの識別子として,ユーザー情報を返します。

定義:
インタフェース UserSummary 内の getInfo
戻り値:
ユーザー情報

setAttribute

public void setAttribute(java.lang.String key,
                         java.lang.String value,
                         boolean save)
UserInfoの属性文字列を登録します。 予約文字(JNAME,ID,INFO,LANG,ROLES,IPADDRESS,LOGINTIME,LASTACCESS,YMD,YMDH,LASTGAMENNM)を 登録しようとした場合は、エラーにします。

パラメータ:
key - String キー
value - String 値
save - boolean GE20(ユーザー定数)に情報を保存するか
例外:
HybsSystemException

getAttribute

public java.lang.String getAttribute(java.lang.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 の今日のシステム日時
 
それ以外は,外部より設定された値です。

定義:
インタフェース UserSummary 内の getAttribute
パラメータ:
key - String キー
戻り値:
属性文字列
関連項目:
getAttribute( String )
変更履歴:
2.1.0.2 (2002/11/07) USER.IDNO の返す値をUSER.ID が5Byte以上の時のみ、 先頭1文字を除いた値を返す様に変更。それ以外は、USER.IDを返す。
2.2.0.0 (2002/12/17) 中国語(国際化)対応 ENCODE 追加
3.1.3.0 (2003/04/10) ユーザー情報から、エンコード情報を削除する。
3.5.4.2 (2003/12/15) ENAME,MAILTO、MAILUSERID、MAILPASSWD、GROUP、PROJECTを削除する。
3.5.6.0 (2004/06/18) synchronized をattribute に行います。
3.6.0.0 (2004/09/17) PASSWD を削除する。
3.8.1.2 (2005/12/19) USER.IDNO を削除する。(外部設定可能にするため)
3.8.7.0 (2006/12/15) ApplicationInfo オブジェクトから最終アクセス画面を取得
4.4.0.0 (2009/08/02) データロール属性対応
4.4.0.1 (2009/08/08) LASTGAMENNM追加

getEntrys

public HybsEntry[] getEntrys()
UserInfoの属性文字列の内部情報を返します。 この内部情報の中には、UserInfo 自身の管理情報も含めます。 独自管理キーは、JNAME,ID,IDNO,INFO,LANG,ROLES,IPADDRESS,LOGINTIME,LASTACCESS,LASTGAMENNM です。 それ以外は,外部より設定された値です。

戻り値:
HybsEntry[] 属性文字列のHybsEntryオブジェクト配列
変更履歴:
4.0.0 (2004/12/31) 新規作成
4.4.0.1 (2009/08/08) LASTGAMENNM追加

removeAttribute

public void removeAttribute(java.lang.String key,
                            boolean save)
UserInfoの属性文字列を削除します。

パラメータ:
key - String キー
save - boolean GE20(ユーザー定数)から情報を削除するか

setGUIMap

public void setGUIMap(java.util.Map<java.lang.String,GUIInfo> newGuiMap,
                      java.util.Set<java.lang.String> newForbidAddrSet)
ユーザー個別の画面オブジェクトのマップをセットします。

パラメータ:
newGuiMap - Map 画面オブジェクトのマップ
newForbidAddrSet - Set アクセス禁止アドレスリスト
変更履歴:
3.8.7.0 (2006/12/15) アクセスログ取得の為,ApplicationInfo オブジェクトを設定
4.0.0 (2005/01/31) 新規追加
4.1.1.0 (2008/01/29) 画面の格上げとお気に入りマップ作成はクラスUserAccessTableに依頼
5.2.0.0 (2010/09/01) アクセス禁止アドレスによる不正アクセス防止機能追加

getGUIInfo

public GUIInfo getGUIInfo(java.lang.String gamenId)
ユーザー個別の画面オブジェクトを取得します。 アクセスできない画面IDが指定されたときは、null が返ります。

パラメータ:
gamenId - String 画面ID
戻り値:
GUIInfo 画面オブジェクト
変更履歴:
4.0.0 (2005/01/31) 新規追加

getGUIInfos

public GUIInfo[] getGUIInfos()
ユーザー個別の画面オブジェクトのマップを取得します。

戻り値:
Map 画面オブジェクトの配列
変更履歴:
4.0.0 (2005/01/31) 新規追加

isValidAddr

public boolean isValidAddr(java.lang.String addr)
アクセスが許可されているアドレスかどうかをチェックします。 チェックの方法は、ブラックリスト方式です。 画面リソースに登録された一覧の内、そのユーザーが許可されていないアドレスに 対してのみfalseが返ります。 画面リソースに登録されていないアドレスや、アドレスにURLの区切り文字(/)が 含まれている場合はチェックされません。(trueが返ります)

パラメータ:
addr - チェック対象のアドレス
戻り値:
アクセスが許可されているアドレスかどうか
変更履歴:
5.2.0.0 (2010/09/01) 新規追加

getFavoriteMap

public java.util.Map<java.lang.String,FavoriteGUIData> getFavoriteMap()
ユーザー個別のお気に入り画面オブジェクトの配列を取得します。

戻り値:
Map お気に入り画面オブジェクトの配列
変更履歴:
4.1.1.0 (2008/01/31) 新規追加

isGUIInfoSet

public boolean isGUIInfoSet()
画面オブジェクトのマップがセット済みかどうかを取得します。

戻り値:
GUIMap がセット済みかどうか(true:セット済み / false:未セット)
変更履歴:
4.0.0 (2005/01/31) 新規追加

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 - RoleMode ロールモード
戻り値:
アクセスビット
変更履歴:
4.3.0.0 (2008/07/04) ロールモードマルチ対応

isAccess

public boolean isAccess(java.lang.String role)
このユーザーの権限で、指定のロールが許可されているかどうかを判定します。

パラメータ:
role - String チェックを行うロール
戻り値:
boolean アクセスできる(true)/出来ない(false)
変更履歴:
4.3.0.0 (2008/07/04) ロールモードマルチ対応
4.3.0.1 (2008/08/11) ロールチェック時の引数間違い、是正

clear

public void clear()
初期化(クリア)します(org.opengion.fukurou.util.Cleanable の実装)。 画面オブジェクトのマップをクリアし、セット済みフラグを未セットに設定します。 システムリソースの USE_ACCESS_TOKEI_TABLE が true の場合は、 画面アクセス状況を、アクセス統計テーブル(GE15)に書き込みます。 ユーザー単位のパラメータは、システムリソースの USER_PARAMETER_SQL で 定義された値を検索して、取り込みます。

定義:
インタフェース Cleanable 内の clear
変更履歴:
3.8.7.0 (2006/12/15) アクセスログ取得の為,ApplicationInfo オブジェクトを設定
4.0.0 (2005/01/31) 新規追加

getEditConfigs

public DBEditConfig[] getEditConfigs(java.lang.String guikey)
引数の画面で登録されているエディット設定を配列で返します。 返される配列は、エディット名順にソートされた状態で返されます。

パラメータ:
guikey - 画面ID
戻り値:
エディット設定(配列)
変更履歴:
5.3.6.0 (2011/06/01) 新規追加

getEditConfig

public DBEditConfig getEditConfig(java.lang.String guikey,
                                  java.lang.String editName)
画面ID、エディット名よりエディット設定オブジェクトを返します。 また、ここで指定されたエディット名がこの画面での選択済みエディットとして登録されます。

パラメータ:
guikey - 画面ID
editName - エディット名
戻り値:
エディット配列
変更履歴:
5.3.6.0 (2011/06/01) 新規追加

addEditConfig

public void addEditConfig(java.lang.String guikey,
                          java.lang.String editName,
                          DBEditConfig config)
指定の画面ID、エディット名でエディット設定オブジェクトを追加します。 既に登録されている場合は、既存のエディット情報を更新します。

パラメータ:
guikey - 画面ID
editName - エディット名
config - エディット設定オブジェクト
変更履歴:
5.3.6.0 (2011/06/01) 新規追加

deleteEditConfig

public void deleteEditConfig(java.lang.String guikey,
                             java.lang.String editName)
指定の画面ID、エディット名のエディット設定を削除します。

パラメータ:
guikey - 画面ID
editName - エディット名
変更履歴:
5.3.6.0 (2011/06/01) 新規追加

setSelectedEdit

public void setSelectedEdit(java.lang.String guikey,
                            java.lang.String editName)
指定の画面IDに対して選択済みのエディット名を登録します。

パラメータ:
guikey - 画面ID
editName - エディット名
変更履歴:
5.3.6.0 (2011/06/01) 新規追加

getSelectedEdit

public java.lang.String getSelectedEdit(java.lang.String guikey)
指定の画面IDに対して選択済みのエディット名を返します。

パラメータ:
guikey - 画面ID
戻り値:
選択済みエディット名
変更履歴:
5.3.6.0 (2011/06/01) 新規追加

getApplicationInfo

public ApplicationInfo getApplicationInfo(java.lang.String gamenId,
                                          java.lang.String prgId)
アクセスログ取得の為,ApplicationInfo オブジェクトを返します。

パラメータ:
gamenId - 実行中の画面ID
prgId - 実行中のプログラムID
戻り値:
ApplicationInfo オブジェクト
変更履歴:
3.8.7.0 (2006/12/15) 新規追加

compareTo

public int compareTo(UserSummary object)
自然比較メソッド インタフェース Comparable の 実装です。 ユーザーの順序は、ユーザーID そのものの順序であらわされます。 同一ユーザーの場合は,ログインタイムの順番になります。

定義:
インタフェース java.lang.Comparable<UserSummary> 内の compareTo
定義:
インタフェース UserSummary 内の compareTo
パラメータ:
object - UserSummary 比較対象のObject
戻り値:
int このオブジェクトが指定されたオブジェクトより小さい場合は負の整数、等しい場合はゼロ、大きい場合は正の整数
変更履歴:
5.1.8.0 (2010/07/01) UserSummary の Comparable を型設定

equals

public boolean equals(java.lang.Object object)
このオブジェクトと他のオブジェクトが等しいかどうかを示します。 インタフェース Comparable の 実装に関連して、再定義しています。 ユーザーは、ユーザーIDが等しく、かつ ログイン時刻が同一の場合に、 等しいと判断されます。

オーバーライド:
クラス java.lang.Object 内の equals
パラメータ:
object - 比較対象の参照オブジェクト
戻り値:
obj 引数に指定されたオブジェクトとこのオブジェクトが等しい場合は true、そうでない場合は false

hashCode

public int hashCode()
オブジェクトのハッシュコード値を返します。 このメソッドは、java.util.Hashtable によって提供されるような ハッシュテーブルで使用するために用意されています。 equals( Object ) メソッドをオーバーライトした場合は、hashCode() メソッドも 必ず 記述する必要があります。 ここでは、ログイン時刻(long 値)の上位 32 ビットと下位 32 ビットの排他的論理和 を求めています。 (int)(this.longValue()^(this.longValue()>>>32)) ※ hashCode の 同一オブジェクトには同一ハッシュコードという規則と 発生頻度,ランダム性を考慮すれば、ログイン時刻そのもの(long)の ハッシュコードでも運用上は全く問題ないと考えられます。

オーバーライド:
クラス java.lang.Object 内の hashCode
戻り値:
このオブジェクトのハッシュコード値
変更履歴:
3.5.6.0 (2004/06/18) 新規追加

toString

public java.lang.String toString()
オブジェクトの識別子として,詳細なユーザー情報を返します。

オーバーライド:
クラス java.lang.Object 内の toString
戻り値:
詳細なユーザー情報

getDataCondition

public java.lang.String getDataCondition(java.lang.String clm)
指定されたカラムキーに対応するデータの条件式を返します。

パラメータ:
clm - カラム名
戻り値:
データの条件式
変更履歴:
4.4.0.0 (2009/08/02) 新規追加

setAccessGui

public void setAccessGui(GUIInfo guiInfo)
このユーザーでアクセスされた画面オブジェクトを設定します。 これは、画面アクセスの履歴(順番)を管理する機能に使います。

パラメータ:
guiInfo - GUIInfo
変更履歴:
5.2.3.0 (2010/12/01) 新規追加

openGion 5.3.6.0

Webアプリケーションフレームワーク openGion
SourceForge.JPCopyright (c) 2009 The openGion Project.