クラス 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 booleancheckDestination(StringSE destination, StringSE requiredPrefix) ユーザー宛先に構成されたプレフィックスを返します。設定されたSimpUserRegistryを返します。protected StringSEgetTargetDestination(StringSE sourceDestination, StringSE actualDestination, StringSE sessionId, StringSE user) このメソッドは、特定のアクティブユーザーセッションのソース「ユーザー」宛先を実際のターゲット宛先に変換する方法を決定します。booleanターゲット宛先から先頭のスラッシュを削除するかどうか。resolveDestination(Message<?> message) ユーザー宛先を指定したメッセージを、実際の宛先を含む 1 つ以上のメッセージ(アクティブなユーザーセッションごとに 1 つ)に解決します。voidsetRemoveLeadingSlash(boolean remove) このプロパティを使用して、変換されたユーザー宛先からの先行スラッシュを削除する必要があるかどうかを示します。voidsetUserDestinationPrefix(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