Class UserIdAttribute

java.lang.Object
nablarch.common.handler.threadcontext.UserIdAttribute
All Implemented Interfaces:
ThreadContextAttribute<Object>
Direct Known Subclasses:
UserIdAttributeInSessionStore

@Published public class UserIdAttribute extends Object implements ThreadContextAttribute<Object>
スレッドコンテキストに保持するユーザID属性。
 HTTPセッション上に格納されているログインユーザIDを
 スレッドコンテキストに格納する。
 
  • Constructor Details

    • UserIdAttribute

      public UserIdAttribute()
  • Method Details

    • setSessionKey

      public void setSessionKey(String sessionKey)
      ログインユーザIDが格納されているHTTPセッション上のキー名を設定する。
       デフォルトではgetKey()の値を使用する。
       
      Parameters:
      sessionKey - HTTPセッション上のキー名
    • setAnonymousId

      public void setAnonymousId(String anonymousId)
      未ログイン時にスレッドコンテキストに設定されるIDを設定する。
       明示的にこの値を設定しなかった場合、
       未ログイン時にスレッドコンテキスト上のユーザIDは設定されない。
       
      Parameters:
      anonymousId - 未ログイン時にスレッドコンテキストに設定されるID
    • getKey

      public String getKey()
      スレッドコンテキストに格納する際に使用するプロパティのキー名を返す。
       ThreadContext.USER_ID_KEY を使用する。
       
      Specified by:
      getKey in interface ThreadContextAttribute<Object>
      Returns:
      プロパティのキー名
    • getValue

      public Object getValue(Object req, ExecutionContext ctx)
      スレッドコンテキストに格納するプロパティの値を返す。
       スレッドコンテキストに格納するユーザIDの値は以下のように決定される。
         1. HTTPセッション上のキーsessionKey の値を取得する。
            その値がnullでなければスレッドコンテキストに設定する。
         2. HTTPセッション上の値がnullであり、かつ anonymousId が
            設定されていれば、その値をスレッドコンテキストに設定する。
         3. 上記以外の場合はnullを設定する。
       
      Specified by:
      getValue in interface ThreadContextAttribute<Object>
      Parameters:
      req - ハンドラの入力データ
      ctx - 実行コンテキスト情報
      Returns:
      プロパティの値
    • getUserIdSession

      protected Object getUserIdSession(ExecutionContext ctx, String skey)
      セッションからユーザIDを取得する。 デフォルトではHTTPセッションからユーザIDを取得する。 必要に応じてオーバーライドすること。
      Parameters:
      ctx - 実行コンテキスト
      skey - ユーザIDのキー
      Returns:
      ユーザID