== 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"] ---- ---- ====== 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"] ---- ---- ======