public class PermissionCheckHandler extends java.lang.Object implements Handler<java.lang.Object,java.lang.Object>
permissionFactory
Permissionを生成するPermissionFactory。必須。
ignoreRequestIds
| Constructor and Description |
|---|
PermissionCheckHandler() |
| Modifier and Type | Method and Description |
|---|---|
java.lang.Object |
handle(java.lang.Object inputData,
ExecutionContext context)
リクエストIDを使用して認可判定を行う。
下記の順に処理を行う。 ThreadContextからリクエストIDを取得し、認可判定の対象リクエストかをチェックする。対象でない場合は、認可判定を行わずに次のハンドラに処理を委譲する。 ThreadContext.getUserId()からユーザIDを取得する。ユーザIDが設定されていない場合は、認可判定を行わずに次のハンドラに処理を委譲する。 ユーザに紐付く認可情報を取得し、認可判定を行う。 認可判定に成功した場合は、 ThreadContextにPermissionを設定し、次のハンドラに処理を委譲する。認可判定に失敗した場合は、指定されたリソースパスとステータスコードを使用して Forbiddenをスローする。
|
PermissionCheckHandler |
setIgnoreRequestIds(java.lang.String... requestIds)
認可判定を行わないリクエストIDを設定する。
|
PermissionCheckHandler |
setPermissionFactory(PermissionFactory permissionFactory)
Permissionを生成するPermissionFactoryを設定する。 |
PermissionCheckHandler |
setUsesInternalRequestId(boolean usesInternal)
開閉局状態の判定を内部リクエストIDを用いて行うか否かを設定する。
明示的に設定しなかった場合のデフォルトは true (内部リクエストIDを使用する。)
|
public java.lang.Object handle(java.lang.Object inputData,
ExecutionContext context)
throws Forbidden
ThreadContextからリクエストIDを取得し、認可判定の対象リクエストかをチェックする。ThreadContext.getUserId()からユーザIDを取得する。ThreadContextにPermissionを設定し、次のハンドラに処理を委譲する。Forbiddenをスローする。
public PermissionCheckHandler setPermissionFactory(PermissionFactory permissionFactory)
Permissionを生成するPermissionFactoryを設定する。permissionFactory - Permissionを生成するPermissionFactorypublic PermissionCheckHandler setIgnoreRequestIds(java.lang.String... requestIds)
requestIds - 認可判定を行わないリクエストIDpublic PermissionCheckHandler setUsesInternalRequestId(boolean usesInternal)
usesInternal - 内部リクエストIDを使用して判定を行う場合は true
常に外部から送信されたリクエストIDを使って判定を行う場合は false