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
を生成するPermissionFactory
public PermissionCheckHandler setIgnoreRequestIds(java.lang.String... requestIds)
requestIds
- 認可判定を行わないリクエストIDpublic PermissionCheckHandler setUsesInternalRequestId(boolean usesInternal)
usesInternal
- 内部リクエストIDを使用して判定を行う場合は true
常に外部から送信されたリクエストIDを使って判定を行う場合は false