| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 | 
							- == 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.
 
- 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"/>
 
- ----
 
- ======
 
 
  |