パッケージ org.iplass.mtp.auth

クラス AuthContext

java.lang.Object
org.iplass.mtp.auth.AuthContext

public abstract class AuthContext extends Object
認証・認可に関する情報を管理するクラスです。 現在の実行スレッドに紐づけられるセキュリティ情報のスナップショットをあらわします。
  • コンストラクタの概要

    コンストラクタ
    コンストラクタ
    説明
     
  • メソッドの概要

    修飾子とタイプ
    メソッド
    説明
    abstract boolean
    現在実行中のユーザーが引数のpermission(権限)を保持しているかどうかを判定します。
    static void
    指定のfunctionを特権実行(セキュリティ制約がない状態で実行)します。
    static <T> T
    doPrivileged(Supplier<T> function)
    指定のfunctionを特権実行(セキュリティ制約がない状態で実行)します。
    abstract Object
    現在のセキュリティコンテキストに紐づいている属性を取得します。
    abstract long
    現在のセッションが認証された時間を取得します。
    現在実行中のユーザーに紐付く認証トークンのリストを取得します。
    abstract Class<? extends Credential>
    現在のログインセッションを信頼された認証にするために必要なCredentialの型を取得します。
    現時点のセキュリティ情報(AuthContext)を取得します。
    abstract String
    現在実行中のユーザーの認証ポリシー名を取得します。
    abstract Tenant
    現在実行中のテナントを取得します。
    abstract User
    現在実行中のユーザーを取得します。
    abstract boolean
    現在のセッションが認証済みユーザーによるものか否かを取得します。
    abstract boolean
    現在のログインセッションが信頼された認証に基づいたものか否かを取得します。
    abstract boolean
    現在のAuthContextが特権実行されている状態かを取得します。
    abstract void
    現在のAuthContext(User情報、セキュリティ権限)を再読み込みします。
    abstract boolean
    現在実行中のユーザーが当該ロールかどうかを判定します。

    クラスから継承されたメソッド java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • コンストラクタの詳細

    • AuthContext

      public AuthContext()
  • メソッドの詳細

    • getCurrentContext

      public static AuthContext getCurrentContext()
      現時点のセキュリティ情報(AuthContext)を取得します。 AuthManagerのgetContext()メソッドを呼び出します。
      戻り値:
    • getTenant

      public abstract Tenant getTenant()
      現在実行中のテナントを取得します。
      戻り値:
    • getUser

      public abstract User getUser()
      現在実行中のユーザーを取得します。 代理ログインしている場合は、成り代わり先のユーザーを取得します。
      戻り値:
    • getAuthTokenInfos

      public abstract AuthTokenInfoList getAuthTokenInfos()
      現在実行中のユーザーに紐付く認証トークンのリストを取得します。
      戻り値:
    • getPolicyName

      public abstract String getPolicyName()
      現在実行中のユーザーの認証ポリシー名を取得します。 代理ログインしている場合は、成り代わり先のユーザーの認証ポリシー名を取得します。
      戻り値:
      ポリシー名
    • getAttribute

      public abstract Object getAttribute(String name)

      現在のセキュリティコンテキストに紐づいている属性を取得します。 認証されたユーザーのUserエンティティのプロパティ、 また、認証プロバイダが返却したユーザー属性を取得可能です。

      利用する認証プロバイダによらず次の属性を取得可能です。

      属性名説明
      providerNameこのアカウントを認証した認証プロバイダ名
      authenticationProcessTypeこのアカウントを認証した際のAuthenticationProcessType
      パラメータ:
      name -
      戻り値:
    • getAuthTime

      public abstract long getAuthTime()
      現在のセッションが認証された時間を取得します。 未ログインユーザーの場合は、返却される値は不定です。
      戻り値:
    • isAuthenticated

      public abstract boolean isAuthenticated()
      現在のセッションが認証済みユーザーによるものか否かを取得します。
      戻り値:
    • isCurrentSessionTrusted

      public abstract boolean isCurrentSessionTrusted()
      現在のログインセッションが信頼された認証に基づいたものか否かを取得します。
      戻り値:
      信頼されている場合はtrue
    • getCredentialTypeForTrust

      public abstract Class<? extends Credential> getCredentialTypeForTrust()
      現在のログインセッションを信頼された認証にするために必要なCredentialの型を取得します。
      戻り値:
      信頼された認証に必要なCredentialのクラス
    • userInRole

      public abstract boolean userInRole(String role)
      現在実行中のユーザーが当該ロールかどうかを判定します。
      パラメータ:
      role - ロール名
      戻り値:
    • checkPermission

      public abstract boolean checkPermission(Permission permission)
      現在実行中のユーザーが引数のpermission(権限)を保持しているかどうかを判定します。
      パラメータ:
      permission - 判定したいPermissionのインスタンス
      戻り値:
      許可される場合true
    • refresh

      public abstract void refresh()
      現在のAuthContext(User情報、セキュリティ権限)を再読み込みします。 ユーザー情報のセキュリティに関連する属性等を変更した場合、 現在ログインしているユーザーの権限状態を最新化したい場合に呼び出します。
    • isPrivileged

      public abstract boolean isPrivileged()
      現在のAuthContextが特権実行されている状態かを取得します。
      戻り値:
      特権実行中の場合true
    • doPrivileged

      public static <T> T doPrivileged(Supplier<T> function)
      指定のfunctionを特権実行(セキュリティ制約がない状態で実行)します。
      実装例
       //EntityManager経由の検索を権限によらず特権実行する。
       EntityManager em = ...
       
       SearchResult<Entity> res = 
           AuthContext.doPrivileged(() -> em.searchEntity(new Query("select oid from HogeEntity")));
       
      パラメータ:
      function -
      戻り値:
    • doPrivileged

      public static void doPrivileged(Runnable function)
      指定のfunctionを特権実行(セキュリティ制約がない状態で実行)します。 戻り値がvoidの場合、利用することが可能です。
      実装例
       //EntityManager経由の更新を権限によらず特権実行する。
       EntityManager em = ...
       Entity entity = ...
       
       AuthContext.doPrivileged(() -> {
           UpdateOption op = new UpdateOption(true);
           op.setUpdateProperties("name", "propA");
           em.update(entity, op);
       });
       
      パラメータ:
      function -