クラス 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(@Nullable Authentication authentication) 常に同じAuthenticationオブジェクトを使用する新しいインスタンスを作成します。方法の概要
修飾子と型メソッド説明voidsetAuthorizationManagerFactory(AuthorizationManagerFactory<ObjectSE> authorizationManagerFactory) 使用するAuthorizationManagerFactoryを設定します。voidsetDefaultRolePrefix(StringSE defaultRolePrefix) 使用すべきではありません。voidsetPermissionEvaluator(PermissionEvaluator permissionEvaluator) 使用するPermissionEvaluatorを設定します。voidsetRoleHierarchy(RoleHierarchy roleHierarchy) 使用すべきではありません。代わりにsetAuthorizationManagerFactory(AuthorizationManagerFactory)を使用してくださいvoidsetSecurityContextHolderStrategy(SecurityContextHolderStrategy securityContextHolderStrategy) 使用するSecurityContextHolderStrategyを設定します。voidsetTrustResolver(AuthenticationTrustResolver trustResolver) 使用すべきではありません。代わりにsetAuthorizationManagerFactory(AuthorizationManagerFactory)を使用してくださいクラス 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
setAuthorizationManagerFactory
public void setAuthorizationManagerFactory(AuthorizationManagerFactory<ObjectSE> authorizationManagerFactory) 使用するAuthorizationManagerFactoryを設定します。デフォルトはDefaultAuthorizationManagerFactoryです。- パラメーター:
authorizationManagerFactory- 使用するAuthorizationManagerFactory。null にはできません。- 導入:
- 7.0
setTrustResolver
使用すべきではありません。代わりにsetAuthorizationManagerFactory(AuthorizationManagerFactory)を使用してください使用するAuthenticationTrustResolverを設定します。デフォルトはAuthenticationTrustResolverImplです。null にすることはできません。- パラメーター:
trustResolver- 使用するAuthenticationTrustResolver- 導入:
- 5.8
setRoleHierarchy
使用すべきではありません。代わりにsetAuthorizationManagerFactory(AuthorizationManagerFactory)を使用してください使用するRoleHierarchyを設定します。デフォルトはNullRoleHierarchyです。null にすることはできません。- パラメーター:
roleHierarchy- 使用するRoleHierarchy- 導入:
- 5.8
setPermissionEvaluator
使用するPermissionEvaluatorを設定します。デフォルトはDenyAllPermissionEvaluatorです。null にすることはできません。- パラメーター:
permissionEvaluator- 使用するPermissionEvaluator- 導入:
- 5.8
setDefaultRolePrefix
使用すべきではありません。代わりにsetAuthorizationManagerFactory(AuthorizationManagerFactory)を使用してくださいSecurityExpressionRoot.hasAnyRole(String...)またはSecurityExpressionRoot.hasRole(String)に追加するデフォルトのプレフィックスを設定します。例: hasRole("ADMIN" ) または hasRole("ROLE_ADMIN" ) が渡された場合、defaultRolePrefix が "ROLE_" (デフォルト) のときはロール ROLE_ADMIN が使用されます。- パラメーター:
defaultRolePrefix- ロールに追加するデフォルトのプレフィックス。デフォルトは "ROLE_" です。- 導入:
- 5.8
setAuthorizationManagerFactory(AuthorizationManagerFactory)を使用してください