クラス SecurityEvaluationContextExtension
java.lang.ObjectSE
org.springframework.security.data.repository.query.SecurityEvaluationContextExtension
- 実装されたすべてのインターフェース:
org.springframework.data.spel.spi.EvaluationContextExtension
,org.springframework.data.spel.spi.ExtensionIdAware
public class SecurityEvaluationContextExtension
extends ObjectSE
implements org.springframework.data.spel.spi.EvaluationContextExtension
このオブジェクトを Bean として定義することにより、Spring Security は Spring Data クエリを作成するための SpEL 式として公開されます。
Java ベースの構成では、以下を使用して Bean を定義できます。
例: 次の User オブジェクトを継承する UserDetails を返す場合:
@Entity public class User { @GeneratedValue(strategy = GenerationType.AUTO) @Id private Long id; ... }
そして、次のようなメッセージオブジェクトがあります。
@Entity public class Message { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @OneToOne private User to; ... }次の
Query
アノテーションを使用して、現在のユーザー宛てのメッセージのみを検索できます。@Repository public interface SecurityMessageRepository extends MessageRepository { @Query("select m from Message m where m.to.id = ?#{ principal?.id }") List<Message> findAll(); }これは、このインスタンスのプリンシパルが id フィールドを持つユーザーであるために機能します。
- 導入:
- 4.0
コンストラクターのサマリー
コンストラクターコンストラクター説明SecurityContextHolder
で見つかった現在のAuthentication
を使用する新しいインスタンスを作成します。SecurityEvaluationContextExtension
(Authentication authentication) 常に同じAuthentication
オブジェクトを使用する新しいインスタンスを作成します。メソッドのサマリー
修飾子と型メソッド説明void
setDefaultRolePrefix
(StringSE defaultRolePrefix) SecurityExpressionRoot.hasAnyRole(String...)
またはSecurityExpressionRoot.hasRole(String)
に追加されるデフォルトのプレフィックスを設定します。void
setPermissionEvaluator
(PermissionEvaluator permissionEvaluator) 使用するPermissionEvaluator
を設定します。void
setRoleHierarchy
(RoleHierarchy roleHierarchy) 使用するRoleHierarchy
を設定します。void
setSecurityContextHolderStrategy
(SecurityContextHolderStrategy securityContextHolderStrategy) 使用するSecurityContextHolderStrategy
を設定します。void
setTrustResolver
(AuthenticationTrustResolver trustResolver) 使用するAuthenticationTrustResolver
を設定します。クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース org.springframework.data.spel.spi.EvaluationContextExtension から継承されたメソッド
getFunctions, getProperties
コンストラクターの詳細
SecurityEvaluationContextExtension
public SecurityEvaluationContextExtension()SecurityContextHolder
で見つかった現在のAuthentication
を使用する新しいインスタンスを作成します。SecurityEvaluationContextExtension
常に同じAuthentication
オブジェクトを使用する新しいインスタンスを作成します。- パラメーター:
authentication
- 使用するAuthentication
メソッドの詳細
getExtensionId
- 次で指定:
- インターフェース
org.springframework.data.spel.spi.ExtensionIdAware
のgetExtensionId
getRootObject
- 次で指定:
- インターフェース
org.springframework.data.spel.spi.EvaluationContextExtension
のgetRootObject
setSecurityContextHolderStrategy
public void setSecurityContextHolderStrategy(SecurityContextHolderStrategy securityContextHolderStrategy) 使用するSecurityContextHolderStrategy
を設定します。デフォルトのアクションは、SecurityContextHolder
に格納されているSecurityContextHolderStrategy
を使用することです。- 導入:
- 5.8
setTrustResolver
使用するAuthenticationTrustResolver
を設定します。デフォルトはAuthenticationTrustResolverImpl
です。null にすることはできません。- パラメーター:
trustResolver
- 使用するAuthenticationTrustResolver
- 導入:
- 5.8
setRoleHierarchy
使用するRoleHierarchy
を設定します。デフォルトはNullRoleHierarchy
です。null にすることはできません。- パラメーター:
roleHierarchy
- 使用するRoleHierarchy
- 導入:
- 5.8
setPermissionEvaluator
使用するPermissionEvaluator
を設定します。デフォルトはDenyAllPermissionEvaluator
です。null にすることはできません。- パラメーター:
permissionEvaluator
- 使用するPermissionEvaluator
- 導入:
- 5.8
setDefaultRolePrefix
SecurityExpressionRoot.hasAnyRole(String...)
またはSecurityExpressionRoot.hasRole(String)
に追加されるデフォルトのプレフィックスを設定します。例: hasRole("ADMIN" )または hasRole("ROLE_ADMIN" )が渡された場合、defaultRolePrefix が "ROLE_" (デフォルト)の場合、ロール ROLE_ADMIN が使用されます。- パラメーター:
defaultRolePrefix
- ロールに追加するデフォルトのプレフィックス。デフォルトは "ROLE_" です。- 導入:
- 5.8