Package nablarch.common.permission
Class PermissionCheckHandler
java.lang.Object
nablarch.common.permission.PermissionCheckHandler
- Direct Known Subclasses:
PermissionCheckHandler
認可判定を行うハンドラ。
このクラスを使用する場合は、下記プロパティを設定する。
このクラスを使用する場合は、下記プロパティを設定する。
permissionFactory
Permission
を生成するPermissionFactory
。必須。ignoreRequestIds
- 認可判定を行わないリクエストID。オプション。
複数指定する場合はカンマ区切り。
- Author:
- Kiyohito Itoh
-
Constructor Summary
-
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:
- このハンドラインスタンス自体
-