2025-07-10 13:16:38 -06:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								== Messaging Migrations
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[[use-path-pattern]]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								== Use PathPatternMessageMatcher by Default
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								In Spring Security 7, `SimpDestMessageMatcher` is no longer supported and will use `PathPatternMessageMatcher` by default.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								To check how prepared you are for this change, you can publish this bean:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[tabs]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								======
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Java::
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								+
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[source,java,role="primary"]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								----
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								@Bean
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								PathPatternMessageMatcherBuilderFactoryBean messageMatcherBuilder() {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return new PathPatternMessageMatcherBuilderFactoryBean();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								----
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Kotlin::
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								+
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[source,kotlin,role="secondary"]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								----
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								@Bean
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								fun messageMatcherBuilder(): PathPatternMessageMatcherBuilderFactoryBean {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return PathPatternMessageMatcherBuilderFactoryBean()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								----
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Xml::
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								+
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[source,xml,role="secondary"]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								----
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								<b:bean class="org.springframework.security.config.web.messaging.PathPatternMessageMatcherBuilderFactoryBean"/>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								----
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								======
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This will tell the Spring Security DSL to use `PathPatternMessageMatcher` for all message matchers that it constructs.
							 
						 
					
						
							
								
									
										
										
										
											2025-07-10 14:53:39 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Use of `PathMatcher` is no longer supported in 7.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								If you are using `PathMatcher` to change the path separator or to change case sensitivity for message matching, you can configure the `PathPatternParser` to do this instead like so:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[tabs]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								======
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Java::
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								+
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[source,java,role="primary"]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								----
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								@Bean
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								PathPatternMessageMatcherBuilderFactoryBean messageMatcherBuilder() {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									PathPatternParser pathPatternParser = new PathPatternParser();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									pathPatternParser.setCaseSensitive(false);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// use . as path separator
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									pathPatternParser.setPathOptions(PathContainer.Options.MESSAGE_ROUTE);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return new PathPatternMessageMatcherBuilderFactoryBean(pathPatternParser);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								----
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Kotlin::
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								+
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[source,kotlin,role="secondary"]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								----
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								@Bean
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								fun messageMatcherBuilder(): PathPatternMessageMatcherBuilderFactoryBean {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    val pathPatternParser = PathPatternParser()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									pathPatternParser.setCaseSensitive(false)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // use . as path separator
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									pathPatternParser.setPathOptions(PathContainer.Options.MESSAGE_ROUTE)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return PathPatternMessageMatcherBuilderFactoryBean(pathPatternParser)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								----
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Xml::
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								+
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[source,xml,role="secondary"]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								----
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								<b:bean class="org.springframework.web.util.pattern.PathPatternParser">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <b:property name="caseSensitive" value="false"/>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <!-- use . as path separator -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <b:property name="pathOptions" value="#{T(org.springframework.http.server.PathContainer.Options).MESSAGE_ROUTE"/>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								</b:bean>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								<b:bean class="org.springframework.security.config.web.messaging.PathPatternMessageMatcherBuilderFactoryBean"/>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								----
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								======