Package nablarch.common.permission
Class PermissionCheckHandler
java.lang.Object
nablarch.common.permission.PermissionCheckHandler
- Direct Known Subclasses:
PermissionCheckHandler
認可判定を行うハンドラ。
このクラスを使用する場合は、下記プロパティを設定する。
このクラスを使用する場合は、下記プロパティを設定する。
permissionFactoryPermissionを生成するPermissionFactory。必須。ignoreRequestIds- 認可判定を行わないリクエストID。オプション。
複数指定する場合はカンマ区切り。
- Author:
- Kiyohito Itoh
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionhandle(Object inputData, ExecutionContext context) リクエストIDを使用して認可判定を行う。
下記の順に処理を行う。ThreadContextからリクエストIDを取得し、認可判定の対象リクエストかをチェックする。
対象でない場合は、認可判定を行わずに次のハンドラに処理を委譲する。ThreadContext.getUserId()からユーザIDを取得する。
ユーザIDが設定されていない場合は、認可判定を行わずに次のハンドラに処理を委譲する。 ユーザに紐付く認可情報を取得し、認可判定を行う。
認可判定に成功した場合は、ThreadContextにPermissionを設定し、次のハンドラに処理を委譲する。
認可判定に失敗した場合は、指定されたリソースパスとステータスコードを使用してForbiddenをスローする。setIgnoreRequestIds(String... requestIds) 認可判定を行わないリクエストIDを設定する。setPermissionFactory(PermissionFactory permissionFactory) Permissionを生成するPermissionFactoryを設定する。setUsesInternalRequestId(boolean usesInternal) 認可判定を内部リクエストIDを用いて行うか否かを設定する。 明示的に設定しなかった場合のデフォルトは true (内部リクエストIDを使用する。)
-
Constructor Details
-
PermissionCheckHandler
public PermissionCheckHandler()
-
-
Method Details
-
handle
リクエストIDを使用して認可判定を行う。
下記の順に処理を行う。ThreadContextからリクエストIDを取得し、認可判定の対象リクエストかをチェックする。
対象でない場合は、認可判定を行わずに次のハンドラに処理を委譲する。ThreadContext.getUserId()からユーザIDを取得する。
ユーザIDが設定されていない場合は、認可判定を行わずに次のハンドラに処理を委譲する。- ユーザに紐付く認可情報を取得し、認可判定を行う。
認可判定に成功した場合は、ThreadContextにPermissionを設定し、次のハンドラに処理を委譲する。
認可判定に失敗した場合は、指定されたリソースパスとステータスコードを使用してForbiddenをスローする。
-
setPermissionFactory
Permissionを生成するPermissionFactoryを設定する。- Parameters:
permissionFactory-Permissionを生成するPermissionFactory- Returns:
- 自身のインスタンス
-
setIgnoreRequestIds
認可判定を行わないリクエストIDを設定する。- Parameters:
requestIds- 認可判定を行わないリクエストID- Returns:
- 自身のインスタンス
-
setUsesInternalRequestId
認可判定を内部リクエストIDを用いて行うか否かを設定する。 明示的に設定しなかった場合のデフォルトは true (内部リクエストIDを使用する。)- Parameters:
usesInternal- 内部リクエストIDを使用して判定を行う場合は true 常に外部から送信されたリクエストIDを使って判定を行う場合は false- Returns:
- このハンドラインスタンス自体
-