クラス DefaultMethodSecurityExpressionHandler
- java.lang.Object
-
- org.springframework.security.access.expression.AbstractSecurityExpressionHandler<org.aopalliance.intercept.MethodInvocation>
-
- org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler
- 実装されたすべてのインターフェース:
org.springframework.aop.framework.AopInfrastructureBean
、org.springframework.beans.factory.Aware
、org.springframework.context.ApplicationContextAware
、MethodSecurityExpressionHandler
、SecurityExpressionHandler<org.aopalliance.intercept.MethodInvocation>
public class DefaultMethodSecurityExpressionHandler extends AbstractSecurityExpressionHandler<org.aopalliance.intercept.MethodInvocation> implements MethodSecurityExpressionHandler
MethodSecurityExpressionHandler
の標準実装。通常、単一のインスタンスは、式のサポートを必要とする Bean 間で共有する必要があります。
- 導入:
- 3.0
フィールドサマリー
フィールド 修飾子と型 フィールド 説明 protected org.apache.commons.logging.Log
logger
コンストラクターのサマリー
コンストラクター コンストラクター 説明 DefaultMethodSecurityExpressionHandler()
メソッドのサマリー
すべてのメソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 org.springframework.expression.spel.support.StandardEvaluationContext
createEvaluationContextInternal(Authentication auth, org.aopalliance.intercept.MethodInvocation mi)
MethodSecurityEvaluationContext
を EvaluationContext 実装として使用します。protected MethodSecurityExpressionOperations
createSecurityExpressionRoot(Authentication authentication, org.aopalliance.intercept.MethodInvocation invocation)
式評価用のルートオブジェクトを作成します。java.lang.Object
filter(java.lang.Object filterTarget, org.springframework.expression.Expression filterExpression, org.springframework.expression.EvaluationContext ctx)
提供された式を評価することにより、filterTarget
オブジェクト(コレクション、配列、マップ、ストリームのいずれかである必要があります)をフィルター処理します。protected java.lang.String
getDefaultRolePrefix()
protected org.springframework.core.ParameterNameDiscoverer
getParameterNameDiscoverer()
protected AuthenticationTrustResolver
getTrustResolver()
void
setDefaultRolePrefix(java.lang.String defaultRolePrefix)
SecurityExpressionRoot.hasAnyRole(String...)
またはSecurityExpressionRoot.hasRole(String)
に追加されるデフォルトのプレフィックスを設定します。void
setParameterNameDiscoverer(org.springframework.core.ParameterNameDiscoverer parameterNameDiscoverer)
使用するParameterNameDiscoverer
を設定します。void
setPermissionCacheOptimizer(PermissionCacheOptimizer permissionCacheOptimizer)
void
setReturnObject(java.lang.Object returnObject, org.springframework.expression.EvaluationContext ctx)
指定された評価コンテキストの戻りオブジェクトを式システムに通知するために使用されます。void
setTrustResolver(AuthenticationTrustResolver trustResolver)
使用するAuthenticationTrustResolver
を設定します。クラス org.springframework.security.access.expression.AbstractSecurityExpressionHandler から継承されたメソッド
createEvaluationContext, getExpressionParser, getPermissionEvaluator, getRoleHierarchy, setApplicationContext, setExpressionParser, setPermissionEvaluator, setRoleHierarchy
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
インターフェース org.springframework.security.access.expression.SecurityExpressionHandler から継承されたメソッド
createEvaluationContext, getExpressionParser
メソッドの詳細
createEvaluationContextInternal
public org.springframework.expression.spel.support.StandardEvaluationContext createEvaluationContextInternal(Authentication auth, org.aopalliance.intercept.MethodInvocation mi)
MethodSecurityEvaluationContext
を EvaluationContext 実装として使用します。- オーバーライド:
- クラス
AbstractSecurityExpressionHandler<org.aopalliance.intercept.MethodInvocation>
のcreateEvaluationContextInternal
- パラメーター:
auth
- 現在の認証オブジェクトmi
- 呼び出し (フィルター、メソッド、チャネル)- 戻り値:
StandardEvaluationContext
またはオーバーライドされる可能性のあるカスタムサブクラス。
createSecurityExpressionRoot
protected MethodSecurityExpressionOperations createSecurityExpressionRoot(Authentication authentication, org.aopalliance.intercept.MethodInvocation invocation)
式評価用のルートオブジェクトを作成します。- 次で指定:
- クラス
AbstractSecurityExpressionHandler<org.aopalliance.intercept.MethodInvocation>
のcreateSecurityExpressionRoot
- パラメーター:
authentication
- 現在の認証オブジェクトinvocation
- 呼び出し (フィルター、メソッド、チャネル)- 戻り値:
- オブジェクト
filter
public java.lang.Object filter(java.lang.Object filterTarget, org.springframework.expression.Expression filterExpression, org.springframework.expression.EvaluationContext ctx)
提供された式を評価することにより、filterTarget
オブジェクト(コレクション、配列、マップ、ストリームのいずれかである必要があります)をフィルター処理します。Collection
またはMap
が使用されている場合、元のインスタンスは、許可式がtrue
と評価される要素を含むように変更されます。配列の場合、新しい配列インスタンスが返されます。- 次で指定:
- インターフェース
MethodSecurityExpressionHandler
のfilter
- パラメーター:
filterTarget
- フィルタリングする配列またはコレクション。filterExpression
- フィルター条件として使用される式。評価時に false を返す場合、オブジェクトは返されたコレクションから削除されますctx
- 現在の評価コンテキスト(SecurityExpressionHandler.createEvaluationContext(org.springframework.security.core.Authentication, Object)
の呼び出しを通じて作成されたもの)- 戻り値:
- フィルタリングされたコレクションまたは配列
setTrustResolver
public void setTrustResolver(AuthenticationTrustResolver trustResolver)
使用するAuthenticationTrustResolver
を設定します。デフォルトはAuthenticationTrustResolverImpl
です。- パラメーター:
trustResolver
- 使用するAuthenticationTrustResolver
。null にはできません。
getTrustResolver
protected AuthenticationTrustResolver getTrustResolver()
- 戻り値:
- 現在の
AuthenticationTrustResolver
setParameterNameDiscoverer
public void setParameterNameDiscoverer(org.springframework.core.ParameterNameDiscoverer parameterNameDiscoverer)
使用するParameterNameDiscoverer
を設定します。デフォルトはDefaultSecurityParameterNameDiscoverer
です。- パラメーター:
parameterNameDiscoverer
-
getParameterNameDiscoverer
protected org.springframework.core.ParameterNameDiscoverer getParameterNameDiscoverer()
- 戻り値:
- 現在の
ParameterNameDiscoverer
setPermissionCacheOptimizer
public void setPermissionCacheOptimizer(PermissionCacheOptimizer permissionCacheOptimizer)
setReturnObject
public void setReturnObject(java.lang.Object returnObject, org.springframework.expression.EvaluationContext ctx)
インターフェースからコピーされた説明:MethodSecurityExpressionHandler
指定された評価コンテキストの戻りオブジェクトを式システムに通知するために使用されます。メソッド呼び出しにのみ適用されます。- 次で指定:
- インターフェース
MethodSecurityExpressionHandler
のsetReturnObject
- パラメーター:
returnObject
- 戻りオブジェクト値ctx
- オブジェクトを設定するコンテキスト(SecurityExpressionHandler.createEvaluationContext(org.springframework.security.core.Authentication, Object)
の呼び出しで作成されたもの)
setDefaultRolePrefix
public void setDefaultRolePrefix(java.lang.String defaultRolePrefix)
SecurityExpressionRoot.hasAnyRole(String...)
またはSecurityExpressionRoot.hasRole(String)
に追加するデフォルトのプレフィックスを設定します。例: hasRole("ADMIN" ) または hasRole("ROLE_ADMIN" ) が渡された場合、defaultRolePrefix が "ROLE_" (デフォルト) のときはロール ROLE_ADMIN が使用されます。null または空の場合、デフォルトのロールプレフィックスは使用されません。
- パラメーター:
defaultRolePrefix
- ロールに追加するデフォルトのプレフィックス。デフォルトは "ROLE_"。
getDefaultRolePrefix
protected java.lang.String getDefaultRolePrefix()
- 戻り値:
- デフォルトのロール接頭辞