@ -38627,7 +38627,7 @@ public class TradeServiceImpl implements TradeService {
@@ -38627,7 +38627,7 @@ public class TradeServiceImpl implements TradeService {
@ -38645,7 +38645,7 @@ for purging inactive destinations.
@@ -38645,7 +38645,7 @@ for purging inactive destinations.
[[websocket-stomp-appplication-context-events]]
==== ApplicationContext Events
==== Broker events and message interception
The STOMP messaging support publishes the `ApplicationContext` events listed below.
To subscribe to receive one or more of these events a Spring managed component can
@ -38686,7 +38686,82 @@ will typically notice the broker is not responding within 10 seconds. Clients ne
@@ -38686,7 +38686,82 @@ will typically notice the broker is not responding within 10 seconds. Clients ne
implement their own reconnect logic.
====
An application can also intercept all incoming or outgoing messages by creating a
`ChannelInterceptor` and registering it on the inbound or outbound channel. See bellow
an example that filters messages based on the message destination and user:
[source,java,indent=0]
[subs="verbatim,quotes"]
----
public class AccessControlChannelInterceptor extends ChannelInterceptorAdapter {
@Override
public Message<?> preSend(Message<?> message, MessageChannel channel) {
Principal user = SimpMessageHeaderAccessor.getUser(message.getHeaders());