You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: spring-integration-core/src/main/java/org/springframework/integration/router/AbstractMappingMessageRouter.java
Copy file name to clipboardExpand all lines: src/reference/asciidoc/router.adoc
+6-1
Original file line number
Diff line number
Diff line change
@@ -1122,6 +1122,11 @@ That map's setter method is exposed as a public method along with the 'setChanne
1122
1122
These let you change, add, and remove router mappings at runtime, as long as you have a reference to the router itself.
1123
1123
It also means that you could expose these same configuration options through JMX (see <<./jmx.adoc#jmx,JMX Support>>) or the Spring Integration control bus (see <<./control-bus.adoc#control-bus,Control Bus>>) functionality.
1124
1124
1125
+
IMPORTANT: Falling back to the channel key as the channel name is flexible and convenient.
1126
+
However, if you don't trust the message creator, a malicious actor (who has knowledge of the system) could create a message that is routed to an unexpected channel.
1127
+
For example, if the key is set to the channel name of the router's input channel, such a message would be routed back to the router, eventually resulting in a stack overflow error.
1128
+
You may therefore wish to disable this feature (set the `channelKeyFallback` property to `false`), and change the mappings instead if needed.
1129
+
1125
1130
[[dynamic-routers-control-bus]]
1126
1131
===== Manage Router Mappings using the Control Bus
1127
1132
@@ -1256,7 +1261,7 @@ The `routingSlipIndex` remains unchanged.
1256
1261
* When the `routingSlipIndex` exceeds the size of the routing slip `path` list, the algorithm moves to the default behavior for the standard `replyChannel` header.
1257
1262
1258
1263
[[process-manager]]
1259
-
===== Process Manager Enterprise Integration Pattern
1264
+
==== Process Manager Enterprise Integration Pattern
1260
1265
1261
1266
Enterprise integration patterns include the https://www.enterpriseintegrationpatterns.com/ProcessManager.html[process manager] pattern.
1262
1267
You can now easily implement this pattern by using custom process manager logic encapsulated in a `RoutingSlipRouteStrategy` within the routing slip.
0 commit comments