クラス ExpressionBasedMessageSecurityMetadataSourceFactory
java.lang.ObjectSE
org.springframework.security.messaging.access.expression.ExpressionBasedMessageSecurityMetadataSourceFactory
@DeprecatedSE
public final class ExpressionBasedMessageSecurityMetadataSourceFactory
extends ObjectSE
使用すべきではありません。
Spring 式にマップされた
MessageMatcher を使用する MessageSecurityMetadataSource を作成するために使用されるクラス。- 導入:
- 4.0
方法の概要
修飾子と型メソッド説明createExpressionMessageMetadataSource(LinkedHashMapSE<MessageMatcher<?>, StringSE> matcherToExpression) 使用すべきではありません。Spring 式にマップされたMessageMatcherを使用するMessageSecurityMetadataSourceを作成します。createExpressionMessageMetadataSource(LinkedHashMapSE<MessageMatcher<?>, StringSE> matcherToExpression, SecurityExpressionHandler<org.springframework.messaging.Message<ObjectSE>> handler) 使用すべきではありません。Spring 式にマップされたMessageMatcherを使用するMessageSecurityMetadataSourceを作成します。
メソッドの詳細
createExpressionMessageMetadataSource
public static MessageSecurityMetadataSource createExpressionMessageMetadataSource(LinkedHashMapSE<MessageMatcher<?>, StringSE> matcherToExpression) 使用すべきではありません。Spring 式にマップされたMessageMatcherを使用するMessageSecurityMetadataSourceを作成します。各エントリは順番に考慮され、最初に一致したものだけが使用されます。例:LinkedHashMap<MessageMatcher<?>,String> matcherToExpression = new LinkedHashMap<MessageMatcher<Object>,String>(); matcherToExpression.put(new SimDestinationMessageMatcher("/public/**"), "permitAll"); matcherToExpression.put(new SimDestinationMessageMatcher("/admin/**"), "hasRole('ROLE_ADMIN')"); matcherToExpression.put(new SimDestinationMessageMatcher("/topics/{name}/**"), "@someBean.customLogic(authentication, #name)"); matcherToExpression.put(new SimDestinationMessageMatcher("/**"), "authenticated"); MessageSecurityMetadataSource metadataSource = createExpressionMessageMetadataSource(matcherToExpression);宛先が "/public/hello" の場合、"/public/**" と "/**" に一致します。ただし、最初のエントリであるため、"/public/**" のみが使用されます。つまり、宛先 "/public/hello" は "permitAll" にマップされます。
式の完全なリストについては、
MessageSecurityExpressionRootを参照してください- パラメーター:
matcherToExpression-AbstractSecurityExpressionHandler.getExpressionParser()を使用して式に変換される文字列へのMessageMatcherの順序付けられたマッピング- 戻り値:
- 使用する
MessageSecurityMetadataSource。null にはできません。
createExpressionMessageMetadataSource
public static MessageSecurityMetadataSource createExpressionMessageMetadataSource(LinkedHashMapSE<MessageMatcher<?>, StringSE> matcherToExpression, SecurityExpressionHandler<org.springframework.messaging.Message<ObjectSE>> handler) 使用すべきではありません。Spring 式にマップされたMessageMatcherを使用するMessageSecurityMetadataSourceを作成します。各エントリは順番に考慮され、最初に一致したものだけが使用されます。例:LinkedHashMap<MessageMatcher<?>,String> matcherToExpression = new LinkedHashMap<MessageMatcher<Object>,String>(); matcherToExpression.put(new SimDestinationMessageMatcher("/public/**"), "permitAll"); matcherToExpression.put(new SimDestinationMessageMatcher("/admin/**"), "hasRole('ROLE_ADMIN')"); matcherToExpression.put(new SimDestinationMessageMatcher("/topics/{name}/**"), "@someBean.customLogic(authentication, #name)"); matcherToExpression.put(new SimDestinationMessageMatcher("/**"), "authenticated"); MessageSecurityMetadataSource metadataSource = createExpressionMessageMetadataSource(matcherToExpression);宛先が "/public/hello" の場合、"/public/**" と "/**" に一致します。ただし、最初のエントリであるため、"/public/**" のみが使用されます。つまり、宛先 "/public/hello" は "permitAll" にマップされます。
式の完全なリストについては、
MessageSecurityExpressionRootを参照してください- パラメーター:
matcherToExpression-AbstractSecurityExpressionHandler.getExpressionParser()を使用して式に変換される文字列へのMessageMatcherの順序付けられたマッピングhandler- 使用するSecurityExpressionHandler- 戻り値:
- 使用する
MessageSecurityMetadataSource。null にはできません。
MessageMatcherDelegatingAuthorizationManagerを使用してください