クラス AclImpl
- java.lang.Object
-
- org.springframework.security.acls.domain.AclImpl
- 実装されたすべてのインターフェース:
java.io.Serializable
、Acl
、AuditableAcl
、MutableAcl
、OwnershipAcl
public class AclImpl extends java.lang.Object implements Acl, MutableAcl, AuditableAcl, OwnershipAcl
Acl
の基本実装。- 関連事項:
- 直列化された形式
コンストラクターのサマリー
コンストラクター コンストラクター 説明 AclImpl(ObjectIdentity objectIdentity, java.io.Serializable id, AclAuthorizationStrategy aclAuthorizationStrategy, AuditLogger auditLogger)
MutableAclService.createAcl(ObjectIdentity)
を使用する必要がある最小のコンストラクター。AclImpl(ObjectIdentity objectIdentity, java.io.Serializable id, AclAuthorizationStrategy aclAuthorizationStrategy, PermissionGrantingStrategy grantingStrategy, Acl parentAcl, java.util.List<Sid> loadedSids, boolean entriesInheriting, Sid owner)
フルコンストラクター。フィールドレベルのアクセス機能を提供しない永続化ツールで使用する必要があります。
メソッドのサマリー
すべてのメソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 void
deleteAce(int aceIndex)
boolean
equals(java.lang.Object obj)
java.util.List<AccessControlEntry>
getEntries()
現在の Acl で表されるすべてのエントリを返します。java.io.Serializable
getId()
この MutableAcl を表す識別子を取得します。ObjectIdentity
getObjectIdentity()
この Acl がエントリを提供するドメインオブジェクトを取得します。Sid
getOwner()
Acl の所有者を決定します。Acl
getParentAcl()
ドメインオブジェクトは、ACL 継承のために親を持つ場合があります。int
hashCode()
void
insertAce(int atIndexLocation, Permission permission, Sid sid, boolean granting)
boolean
isEntriesInheriting()
Acl.getParentAcl()
からの ACL エントリを現在の Acl に流す必要があるかどうかを示します。boolean
isGranted(java.util.List<Permission> permission, java.util.List<Sid> sids, boolean administrativeMode)
PermissionGrantingStrategy
へのデリゲート。boolean
isSidLoaded(java.util.List<Sid> sids)
効率上の理由から、Acl が読み込まれ、システム内のすべての Sid のエントリが含まれていない場合があります。void
setEntriesInheriting(boolean entriesInheriting)
Acl.isEntriesInheriting()
によって返される値を変更します。void
setOwner(Sid newOwner)
現在の所有者を別の所有者に変更します。void
setParent(Acl newParent)
この ACL の親を変更します。java.lang.String
toString()
void
updateAce(int aceIndex, Permission permission)
void
updateAuditing(int aceIndex, boolean auditSuccess, boolean auditFailure)
コンストラクターの詳細
AclImpl
public AclImpl(ObjectIdentity objectIdentity, java.io.Serializable id, AclAuthorizationStrategy aclAuthorizationStrategy, AuditLogger auditLogger)
MutableAclService.createAcl(ObjectIdentity)
を使用する必要がある最小のコンストラクター。- パラメーター:
objectIdentity
- この ACL が関連するオブジェクト ID (必須)id
- この ACL に割り当てられた主キー (必須)aclAuthorizationStrategy
- 認可戦略 (必須)auditLogger
- 監査ロガー (必須)
AclImpl
public AclImpl(ObjectIdentity objectIdentity, java.io.Serializable id, AclAuthorizationStrategy aclAuthorizationStrategy, PermissionGrantingStrategy grantingStrategy, Acl parentAcl, java.util.List<Sid> loadedSids, boolean entriesInheriting, Sid owner)
フルコンストラクター。フィールドレベルのアクセス機能を提供しない永続化ツールで使用する必要があります。- パラメーター:
objectIdentity
- この ACL が関連するオブジェクト IDid
- この ACL に割り当てられた主キーaclAuthorizationStrategy
- 認可戦略grantingStrategy
-isGranted()
メソッドで使用されるPermissionGrantingStrategy
parentAcl
- 親 (null
かもしれません)loadedSids
- サブセットのみがロードされた場合、ロードされた SID (null
の場合があります)entriesInheriting
- 親からの ACE がこの ACL を継承する必要がある場合owner
- 所有者 (必須)
メソッドの詳細
deleteAce
public void deleteAce(int aceIndex) throws NotFoundException
- 次で指定:
- インターフェース
MutableAcl
のdeleteAce
- 例外:
NotFoundException
insertAce
public void insertAce(int atIndexLocation, Permission permission, Sid sid, boolean granting) throws NotFoundException
- 次で指定:
- インターフェース
MutableAcl
のinsertAce
- 例外:
NotFoundException
getEntries
public java.util.List<AccessControlEntry> getEntries()
インターフェースからコピーされた説明:Acl
現在の Acl で表されるすべてのエントリを返します。 Acl の親に関連付けられているエントリは返されません。この方法は通常、管理目的で使用されます。
エントリが配列に現れる順序は、
MutableAcl
インターフェースで宣言されたメソッドにとって重要です。さらに、一部の実装では、高度な権限チェックの一部として順序を使用する場合があります。認可の決定を行うためにこのメソッドを使用しないでください。代わりに
Acl.isGranted(List, List, boolean)
を使用してください。Acl が Sid のサブセットのみを表す場合でも、このメソッドは正しく動作する必要があります。 Sid のサブセットのみが表現されている場合、呼び出し元は結果を正しく処理する必要があります。
- 次で指定:
- インターフェース
Acl
のgetEntries
- 戻り値:
- Acl で表されるエントリのリスト。現在この Acl に関連付けられているエントリがない場合は null 。
getId
public java.io.Serializable getId()
インターフェースからコピーされた説明:MutableAcl
この MutableAcl を表す識別子を取得します。- 次で指定:
- インターフェース
MutableAcl
のgetId
- 戻り値:
- 識別子。保存されていない場合は null
getObjectIdentity
public ObjectIdentity getObjectIdentity()
インターフェースからコピーされた説明:Acl
この Acl がエントリを提供するドメインオブジェクトを取得します。 Acl が作成されると、これは不変です。- 次で指定:
- インターフェース
Acl
のgetObjectIdentity
- 戻り値:
- オブジェクトのアイデンティティ (決して null )
isEntriesInheriting
public boolean isEntriesInheriting()
インターフェースからコピーされた説明:Acl
Acl.getParentAcl()
からの ACL エントリを現在の Acl に流す必要があるかどうかを示します。Acl と親 Acl の間の単なるリンクだけでは、ACL エントリが継承されません。これは、ドメインオブジェクトは完全に独立したエントリを持ちたいが、ナビゲーションのために親とのリンクを維持する必要があるためです。このメソッドは、ナビゲーション関連がエントリの実際の継承にも及ぶかどうかを示します。
- 次で指定:
- インターフェース
Acl
のisEntriesInheriting
- 戻り値:
- true 親 ACL エントリが現在の Acl を継承する場合
isGranted
public boolean isGranted(java.util.List<Permission> permission, java.util.List<Sid> sids, boolean administrativeMode) throws NotFoundException, UnloadedSidException
PermissionGrantingStrategy
へのデリゲート。- 次で指定:
- インターフェース
Acl
のisGranted
- パラメーター:
permission
- 必要な権限 (少なくとも 1 つのエントリが必要)sids
- プリンシパルが保持するセキュリティ ID (少なくとも 1 つのエントリが必要)administrativeMode
- true がクエリが管理目的であり、ロギングまたは監査(実装でサポートされている場合)を行わないことを示す場合- 戻り値:
- 認可が付与されている場合、 true
- 例外:
UnloadedSidException
- ACL が SID のサブセットに対してのみロードされたため、渡された SID がこの ACL に認識されていない場合NotFoundException
- 通常、この特定の権限や SID の ACL 情報がないために、実装が正式な認可を決定できない場合にスローする必要があります。- 関連事項:
DefaultPermissionGrantingStrategy
isSidLoaded
public boolean isSidLoaded(java.util.List<Sid> sids)
インターフェースからコピーされた説明:Acl
効率上の理由から、Acl が読み込まれ、システム内のすべての Sid のエントリが含まれていない場合があります。ACL がロードされていると、すべてシドを表していない場合は、ACL をすべての方法は、それが実際に表しシドインスタンスの限られた範囲内で使用することができます。読み取り専用の認可決定が行われている場合、特定の Sid に対してのみ Acl をロードするのは正常です。ただし、 Acl のユーザーインターフェースレポートまたは変更が必要な場合は、 Acl にすべての Sid をロードする必要があります。このメソッドは、指定された Sid がロードされているかどうかを示します。
- 次で指定:
- インターフェース
Acl
のisSidLoaded
- パラメーター:
sids
- 発信者がこの Sid がサポートしているかどうかを知ることに関心がある 1 つ以上のセキュリティ ID- 戻り値:
- 渡されたすべての Sid がこの Acl インスタンスによって表される場合、 true
setEntriesInheriting
public void setEntriesInheriting(boolean entriesInheriting)
インターフェースからコピーされた説明:MutableAcl
Acl.isEntriesInheriting()
によって返される値を変更します。- 次で指定:
- インターフェース
MutableAcl
のsetEntriesInheriting
- パラメーター:
entriesInheriting
- 新しい価値
setOwner
public void setOwner(Sid newOwner)
インターフェースからコピーされた説明:MutableAcl
現在の所有者を別の所有者に変更します。- 次で指定:
- インターフェース
MutableAcl
のsetOwner
- 次で指定:
- インターフェース
OwnershipAcl
のsetOwner
- パラメーター:
newOwner
- 新しい所有者 (必須。null にすることはできません)
setParent
public void setParent(Acl newParent)
インターフェースからコピーされた説明:MutableAcl
この ACL の親を変更します。- 次で指定:
- インターフェース
MutableAcl
のsetParent
- パラメーター:
newParent
- 新しい親
getParentAcl
public Acl getParentAcl()
インターフェースからコピーされた説明:Acl
ドメインオブジェクトは、ACL 継承のために親を持つ場合があります。親が存在する場合、その ACL はこのメソッドを介してアクセスできます。次に、親の親(祖父母)にアクセスできます。このメソッドは、親 Acl とこの Acl の間のナビゲーション階層の存在のみを表します。実際の継承を行うには、
Acl.isEntriesInheriting()
も true である必要があります。Acl が Sid のサブセットのみを表す場合でも、このメソッドは正しく動作する必要があります。 Sid のサブセットのみが表現されている場合、呼び出し元は結果を正しく処理する必要があります。
- 次で指定:
- インターフェース
Acl
のgetParentAcl
- 戻り値:
- 親の Acl (この Acl に親がない場合、 null になる可能性があります)
updateAce
public void updateAce(int aceIndex, Permission permission) throws NotFoundException
- 次で指定:
- インターフェース
MutableAcl
のupdateAce
- 例外:
NotFoundException
updateAuditing
public void updateAuditing(int aceIndex, boolean auditSuccess, boolean auditFailure)
- 次で指定:
- インターフェース
AuditableAcl
のupdateAuditing
equals
public boolean equals(java.lang.Object obj)
- オーバーライド:
- クラス
java.lang.Object
のequals
hashCode
public int hashCode()
- オーバーライド:
- クラス
java.lang.Object
のhashCode
toString
public java.lang.String toString()
- オーバーライド:
- クラス
java.lang.Object
のtoString