ドメイン層 を構築するパッケージで す。ドメイン層には United Front 2 の世界をオブジェクト指向によってモデル化したクラス群が配置されます。ドメ イン層はシステムの中核的なロジックが実装されます。
org.unitedfront2.domain.accesscontrol
パッケージでは、ドメイン層の中でも特にア
クセス制御に関するクラスが収録されています。
AccessControl
インターフェースは、資源に対
するアクセス制御ロジックを実装するためのインターフェースです。アクセス制御の対象となる資源は
Resource
インターフェースを実装する必要があります。
資源に対して、アクセス制御クラスは汎用的に利用できます。例えば、次のコードはユーザからのアクセスに限定する
ためのアクセス制御オブジェクトを生成し、永続化しています。このアクセス制御オブジェクトをどのように利用するかは
利用する側で決めます。
AccessControl ac = domainFactory.prototype(UserOnly.class); ac.store();
アクセス制御タイプを変更して保存するためのコードは次のとおりです。
AccessControl ac = ... ac.changeTo(OwnerOnly.class); ac.store();
ある資源に対し、あるユーザがアクセス可能かどうかを判定するアクセス制御ロジックの実行は次のようにして行いま
す。アクセス可能な場合は何も起きませんが、アクセスが拒否された場合は
AccessDeniedException
が発
生します。
Resource resource = ... User user = ... AccessControl ac = ... ac.access(resource, user);
アクセス制御をどのように利用するかは利用する側で決めることになります。一般的な構成図を次に示します。これは、
資源 ConcreteResource
が読み取りアクセス制御メソッド readAccess
と書き込みアクセス制御メソッド writeAccess
の実装にアクセス制御クラスを利用している例で
す。このような一般的な構成は AbstractResource
などいくつかの支援クラスを継承することで実装を簡略化できます。
この資源に対し、あるユーザが参照アクセス可能かどうかを判定するにアクセス制御ロジックの実行は次のようになり ます。
ContreteResource resource = ... User user = ... resource.readAccess(user);
このパッケージでは、アクセス制御クラスの実装を支援するクラスなども収録しています。役割別に分類したリストを示し ます。
アクセス制御の中核的な概念を表すインターフェースとクラスです。これらは外部パッケージから参照されます。
Resource
の実装を支援するクラス
Resource
の実装を支援するクラスです。Resource
を新たに作成する際に
利用できます。
AccessControl
の実装を支援するクラス
AccessControl
の実装を支援するクラスです。AccessControl
を新た
に作成する際に利用できます。AccessControlProxy
は通常外部のアプリケーションが意識
する必要はありません。