Affects: 6.1.12


After unsuccessfully trying to get a custom MimeType, I discovered that my decoders were being overwritten by something. Spring Overriding rsocket decoders Spring Overriding rsocket decoders Spring Overriding rsocket decoders Spring Overriding rsocket decoders Configuration file:

@Configuration
public class RSocketServerConfiguration {

    @Bean
    public RSocketMessageHandler rsocketMessageHandler() {
        RSocketMessageHandler handler = new RSocketMessageHandler();
        handler.setRouteMatcher(new PathPatternRouteMatcher());
        return handler;
    }

    @Bean
    public DefaultMetadataExtractor defaultMetadataExtractor() {
        DefaultMetadataExtractor defaultMetadataExtractor = new DefaultMetadataExtractor(
                JwtDecoder.textJwt()
        );
        defaultMetadataExtractor.metadataToExtract(MimeType.valueOf("application/jwt"), String.class, "jwt");
        return defaultMetadataExtractor;
    }

    @Bean
    public RSocketRequester getRSocketRequester(
            @Value("${spring.rsocket.server.port}") Integer port,
            RSocketMessageHandler handler
    ) {
        RSocketRequester.Builder builder = RSocketRequester.builder();
        return builder
                .rsocketConnector(rSocketConnector -> rSocketConnector
                        .reconnect(Retry.fixedDelay(2, Duration.ofSeconds(2)))
                        .acceptor(handler.responder())
                )
                .rsocketStrategies(strategies -> {
                    strategies.decoder(JwtDecoder.textJwt())
                            .metadataExtractorRegistry(registry -> registry
                                    .metadataToExtract(
                                            MimeType.valueOf("application/jwt"),
                                            String.class,
                                            "jwt")
                            );
                })
                .metadataMimeType(MimeTypeUtils.APPLICATION_JSON)
                .tcp("localhost", port);
    }
}