パッケージ org.iplass.mtp.auth
クラス AuthContext
java.lang.Object
org.iplass.mtp.auth.AuthContext
public abstract class AuthContext
extends java.lang.Object
認証・認可に関する情報を管理するクラスです。
現在の実行スレッドに紐づけられるセキュリティ情報のスナップショットをあらわします。
-
コンストラクタの概要
コンストラクタ コンストラクタ 説明 AuthContext()
-
メソッドの概要
修飾子とタイプ メソッド 説明 abstract boolean
checkPermission(Permission permission)
現在実行中のユーザーが引数のpermission(権限)を保持しているかどうかを判定します。static void
doPrivileged(java.lang.Runnable function)
指定のfunctionを特権実行(セキュリティ制約がない状態で実行)します。static <T> T
doPrivileged(java.util.function.Supplier<T> function)
指定のfunctionを特権実行(セキュリティ制約がない状態で実行)します。abstract java.lang.Object
getAttribute(java.lang.String name)
現在のセキュリティコンテキストに紐づいている属性を取得します。abstract long
getAuthTime()
現在のセッションが認証された時間を取得します。abstract AuthTokenInfoList
getAuthTokenInfos()
現在実行中のユーザーに紐付く認証トークンのリストを取得します。abstract java.lang.Class<? extends Credential>
getCredentialTypeForTrust()
現在のログインセッションを信頼された認証にするために必要なCredentialの型を取得します。static AuthContext
getCurrentContext()
現時点のセキュリティ情報(AuthContext)を取得します。abstract java.lang.String
getPolicyName()
現在実行中のユーザーの認証ポリシー名を取得します。abstract Tenant
getTenant()
現在実行中のテナントを取得します。abstract User
getUser()
現在実行中のユーザーを取得します。abstract boolean
isAuthenticated()
現在のセッションが認証済みユーザーによるものか否かを取得します。abstract boolean
isCurrentSessionTrusted()
現在のログインセッションが信頼された認証に基づいたものか否かを取得します。abstract boolean
isPrivileged()
現在のAuthContextが特権実行されている状態かを取得します。abstract void
refresh()
現在のAuthContext(User情報、セキュリティ権限)を再読み込みします。abstract boolean
userInRole(java.lang.String role)
現在実行中のユーザーが当該ロールかどうかを判定します。
-
コンストラクタの詳細
-
AuthContext
public AuthContext()
-
-
メソッドの詳細
-
getCurrentContext
現時点のセキュリティ情報(AuthContext)を取得します。 AuthManagerのgetContext()メソッドを呼び出します。- 戻り値:
-
getTenant
現在実行中のテナントを取得します。- 戻り値:
-
getUser
現在実行中のユーザーを取得します。 代理ログインしている場合は、成り代わり先のユーザーを取得します。- 戻り値:
-
getAuthTokenInfos
現在実行中のユーザーに紐付く認証トークンのリストを取得します。- 戻り値:
-
getPolicyName
public abstract java.lang.String getPolicyName()現在実行中のユーザーの認証ポリシー名を取得します。 代理ログインしている場合は、成り代わり先のユーザーの認証ポリシー名を取得します。- 戻り値:
- ポリシー名
-
getAttribute
public abstract java.lang.Object getAttribute(java.lang.String name)現在のセキュリティコンテキストに紐づいている属性を取得します。 認証されたユーザーのUserエンティティのプロパティ、 また、認証プロバイダが返却したユーザー属性を取得可能です。
利用する認証プロバイダによらず次の属性を取得可能です。
属性名 説明 providerName このアカウントを認証した認証プロバイダ名 authenticationProcessType このアカウントを認証した際の AuthenticationProcessType
- パラメータ:
name
-- 戻り値:
-
getAuthTime
public abstract long getAuthTime()現在のセッションが認証された時間を取得します。 未ログインユーザーの場合は、返却される値は不定です。- 戻り値:
-
isAuthenticated
public abstract boolean isAuthenticated()現在のセッションが認証済みユーザーによるものか否かを取得します。- 戻り値:
-
isCurrentSessionTrusted
public abstract boolean isCurrentSessionTrusted()現在のログインセッションが信頼された認証に基づいたものか否かを取得します。- 戻り値:
- 信頼されている場合はtrue
-
getCredentialTypeForTrust
現在のログインセッションを信頼された認証にするために必要なCredentialの型を取得します。- 戻り値:
- 信頼された認証に必要なCredentialのクラス
-
userInRole
public abstract boolean userInRole(java.lang.String role)現在実行中のユーザーが当該ロールかどうかを判定します。- パラメータ:
role
- ロール名- 戻り値:
-
checkPermission
現在実行中のユーザーが引数のpermission(権限)を保持しているかどうかを判定します。- パラメータ:
permission
- 判定したいPermissionのインスタンス- 戻り値:
- 許可される場合true
-
refresh
public abstract void refresh()現在のAuthContext(User情報、セキュリティ権限)を再読み込みします。 ユーザー情報のセキュリティに関連する属性等を変更した場合、 現在ログインしているユーザーの権限状態を最新化したい場合に呼び出します。 -
isPrivileged
public abstract boolean isPrivileged()現在のAuthContextが特権実行されている状態かを取得します。- 戻り値:
- 特権実行中の場合true
-
doPrivileged
public static <T> T doPrivileged(java.util.function.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(java.lang.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
-
-