クラス SecurityEvaluationContextExtension
- java.lang.Object
-
- org.springframework.security.data.repository.query.SecurityEvaluationContextExtension
- 実装されたすべてのインターフェース:
org.springframework.data.spel.spi.EvaluationContextExtension
,org.springframework.data.spel.spi.ExtensionIdAware
public class SecurityEvaluationContextExtension extends java.lang.Object 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
コンストラクターのサマリー
コンストラクター コンストラクター 説明 SecurityEvaluationContextExtension()
SecurityContextHolder
で見つかった現在のAuthentication
を使用する新しいインスタンスを作成します。SecurityEvaluationContextExtension(Authentication authentication)
常に同じAuthentication
オブジェクトを使用する新しいインスタンスを作成します。
メソッドのサマリー
すべてのメソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 java.lang.String
getExtensionId()
SecurityExpressionRoot
getRootObject()
コンストラクターの詳細
SecurityEvaluationContextExtension
public SecurityEvaluationContextExtension()
SecurityContextHolder
で見つかった現在のAuthentication
を使用する新しいインスタンスを作成します。
SecurityEvaluationContextExtension
public SecurityEvaluationContextExtension(Authentication authentication)
常に同じAuthentication
オブジェクトを使用する新しいインスタンスを作成します。- パラメーター:
authentication
- 使用するAuthentication
メソッドの詳細
getExtensionId
public java.lang.String getExtensionId()
- 次で指定:
- インターフェース
org.springframework.data.spel.spi.ExtensionIdAware
のgetExtensionId
getRootObject
public SecurityExpressionRoot getRootObject()
- 次で指定:
- インターフェース
org.springframework.data.spel.spi.EvaluationContextExtension
のgetRootObject