Update `RabbitProperties` and `RabbitTemplateConfigurer` to support a
`spring.rabbitmq.template.allowed-list-patterns` property.
The can be used to prevent errors of the form:
java.lang.SecurityException: Attempt to deserialize unauthorized
class com.example.domain.Message; add allowed class name patterns
to the message converter or, if you trust the message orginiator,
set environment variable 'SPRING_AMQP_DESERIALIZATION_TRUST_ALL'
or system property 'spring.amqp.deserialization.trust.all' to true
See gh-40421
Adds auto-config for Spring for Apache Pulsar transactions.
Introduces a new `spring.pulsar.transaction.enabled` property
which can be used to enable transactions. This feature is
opt-in and remains disabled by default.
See gh-40189
Co-authored-by: Andy Wilkinson <andy.wilkinson@broadcom.com>
Co-authored-by: Phillip Webb <phil.webb@broadcom.com>
As of spring-projects/spring-graphql#534, Spring for GraphQL supports
the configuration of keep-alive PINGs for WebSocket connections.
This commit auto-configures this value in the `GraphQlWebSocketHandler`
WebFlux and MVC implementations if the
`spring.graphql.websocket.keep-alive` property is configured.
Closes gh-40320
Though the CqlSession provided by the CassandraAutoConfiguration can
be lazy, the configuration for Data Cassandra triggers early bean
instantiation. This commit uses new APIs in Data Cassandra to make
use of the intended lazy bean initialization and therefore prevents
the application from failing to start up when Cassandra might not yet
be ready.
See gh-39948
Properties under `server.ssl.server-name-bundles` and
`management.server.ssl.server-name-bundles` can be used to configure
mappings of host names to SSL bundles to support SNI in embedded web
servers.
Closes gh-26022
An ApplicationResourceLoader has been introduced to support loading
resources using registered ProtocolResolvers. All usages of
DefaultResourceLoader and ResourceUtils have been changed to use
the ApplicationResourceLoader.
A Base64ProtocolResolver has been added to support resources of type
`base64:` that contain base64 encoded values.
Closes gh-36033
The PulsarTemplate recently replaced its list of ProducerInterceptors
with a list of ProducerBuilderCustomizers that customize the builder by
adding each interceptor to the builder. The PulsarAutoConfigurationTests
previosuly relied on the previous field. This commit adjusts the tests
to instead use the Customizers testing utility to verify the
interceptors.
(cherry picked from commit 9c054a021f)
See gh-39946
The PulsarTemplate recently replaced its list of ProducerInterceptors
with a list of ProducerBuilderCustomizers that customize the builder by
adding each interceptor to the builder. The PulsarAutoConfigurationTests
previosuly relied on the previous field. This commit adjusts the tests
to instead use the Customizers testing utility to verify the
interceptors.
See gh-39912
Prior to this commit, Spring Boot auto-configurations for GraphQL web
endpoint were implementing their own `RequestPredicate` instances for
HTTP endpoints. Those were composing predicates with the provided DSL.
While this is functionnally right, Spring for GraphQL now provides
predicates in order to:
* host the implementation in spring-graphql directly
* provide optimized predicates for faster matching and lower overhead
This commit switches the auto-configurations to using these new
predicates.
Closes gh-39652
This commit adapts the error controller tests that need the request
to fail with a bind issue, and simulate the behavior of
ModelAttributeMethodProcessor.
As of Spring Framework 6.0.x, this processor no longer throws a
BindingException, but rather a MethodArgumentNotValidException and
the handing of BindException itself is deprecated.
This makes sure that those tests can smoothly be executed against
Spring Framework 6.2.x as throwing a BindingException now results
into an unresolved exception, and an internal server error rather than
the expected bad request.
See gh-39767