クラス DefaultUserDestinationResolver
java.lang.ObjectSE
org.springframework.messaging.simp.user.DefaultUserDestinationResolver
- 実装されたすべてのインターフェース:
UserDestinationResolver
SimpUserRegistry
に依存してユーザーのアクティブセッションを見つける UserDestinationResolver
のデフォルト実装。ユーザーが、たとえば "/user/queue/position-updates" にサブスクライブしようとすると、"/user" プレフィックスが削除され、セッション ID に基づいて一意のサフィックス (たとえば "/queue/position-updates-useri9oqdfzo") が追加され、異なるユーザーが衝突することなく同じ論理宛先にサブスクライブできるようになります。
たとえば、"/user/{username}/queue/position-updates", をユーザーに送信する場合、"/user/{username}" プレフィックスが削除され、アクティブなセッション ID に基づくサフィックス (たとえば、"/queue/position-updates-useri9oqdfzo") が追加されます。
- 導入:
- 4.0
- 作成者:
- Rossen Stoyanchev, Brian Clozel
コンストラクターのサマリー
コンストラクター説明DefaultUserDestinationResolver
(SimpUserRegistry userRegistry) 提供されたレジストリを介してユーザーセッション ID 情報にアクセスするインスタンスを作成します。方法の概要
修飾子と型メソッド説明protected boolean
checkDestination
(StringSE destination, StringSE requiredPrefix) ユーザー宛先に構成されたプレフィックスを返します。設定されたSimpUserRegistry
を返します。protected StringSE
getTargetDestination
(StringSE sourceDestination, StringSE actualDestination, StringSE sessionId, StringSE user) このメソッドは、特定のアクティブユーザーセッションのソース「ユーザー」宛先を実際のターゲット宛先に変換する方法を決定します。boolean
ターゲット宛先から先頭のスラッシュを削除するかどうか。resolveDestination
(Message<?> message) ユーザー宛先を指定したメッセージを、実際の宛先を含む 1 つ以上のメッセージ(アクティブなユーザーセッションごとに 1 つ)に解決します。void
setRemoveLeadingSlash
(boolean remove) このプロパティを使用して、変換されたユーザー宛先からの先行スラッシュを削除する必要があるかどうかを示します。void
setUserDestinationPrefix
(StringSE prefix) ユーザーの宛先を識別するために使用される接頭辞。toString()
コンストラクターの詳細
DefaultUserDestinationResolver
提供されたレジストリを介してユーザーセッション ID 情報にアクセスするインスタンスを作成します。- パラメーター:
userRegistry
- レジストリ、null
メソッドの詳細
getSimpUserRegistry
設定されたSimpUserRegistry
を返します。setUserDestinationPrefix
ユーザーの宛先を識別するために使用される接頭辞。指定された接頭辞で始まらない宛先は解決されません。デフォルトのプレフィックスは "/user/" です。
- パラメーター:
prefix
- 使用する接頭辞
getDestinationPrefix
ユーザー宛先に構成されたプレフィックスを返します。setRemoveLeadingSlash
public void setRemoveLeadingSlash(boolean remove) このプロパティを使用して、変換されたユーザー宛先からの先行スラッシュを削除する必要があるかどうかを示します。これは、メッセージブローカーが構成されている宛先プレフィックスに依存します。デフォルトでは、これは
false
に設定されています。つまり、「ターゲットの宛先を変更しないでください」です。ただし、構成された宛先の先頭にスラッシュがない場合、AbstractMessageBrokerConfiguration
はtrue
に変更することがあります。- パラメーター:
remove
- 先頭のスラッシュを削除するかどうか- 導入:
- 4.3.14
isRemoveLeadingSlash
public boolean isRemoveLeadingSlash()ターゲット宛先から先頭のスラッシュを削除するかどうか。- 導入:
- 4.3.14
resolveDestination
インターフェースからコピーされた説明:UserDestinationResolver
ユーザー宛先を指定したメッセージを、実際の宛先を含む 1 つ以上のメッセージ(アクティブなユーザーセッションごとに 1 つ)に解決します。- 次で指定:
- インターフェース
UserDestinationResolver
のresolveDestination
- パラメーター:
message
- 解決しようとするメッセージ- 戻り値:
- 0 以上のターゲットメッセージ(アクティブなセッションごとに 1 つ)、またはソースメッセージにユーザー宛先が含まれていない場合は
null
。
checkDestination
getTargetDestination
@Nullable protected StringSE getTargetDestination(StringSE sourceDestination, StringSE actualDestination, StringSE sessionId, @Nullable StringSE user) このメソッドは、特定のアクティブユーザーセッションのソース「ユーザー」宛先を実際のターゲット宛先に変換する方法を決定します。- パラメーター:
sourceDestination
- 入力メッセージからのソース宛先。actualDestination
- ユーザー接頭辞のない宛先のサブセット。sessionId
-null
ではなく、アクティブなユーザーセッションの ID。user
- 認証されていない場合は、ターゲットユーザー (たとえば、null
) になります。- 戻り値:
- ターゲット宛先、ない場合は
null
toString