oscerd opened a new pull request, #26267:
URL: https://github.com/apache/camel/pull/26267
# CAMEL-24676: camel-jgroups deserialization filter + serialization
hardening docs
## What
The `jgroups` consumer maps an incoming cluster message to the exchange body
via
`org.jgroups.Message.getObject()`, which Java-deserializes the payload.
Unlike the
other components that can receive Java-serialized payloads (the camel-netty
and
camel-mina object codecs, camel-jms `objectMessageEnabled`,
camel-spring-redis),
camel-jgroups had no way to constrain the accepted types and no
documentation of
the cluster serialization trust boundary.
This change brings camel-jgroups in line with the shared
deserialization-filter work:
- Adds a `deserializationFilter` consumer/component option, resolved through
the
shared `DeserializationFilterHelper` (CAMEL-23815 / CAMEL-24296). When
set, the
type of the message body is checked against the JEP-290 `ObjectInputFilter`
pattern before the exchange is routed, and a rejected type is refused.
- Adds a **Security** section to the component documentation explaining that
message bodies are Java-deserialized, that the default UDP stack does not
authenticate peers, and recommending the primary hardening levers: a
JVM-wide
`jdk.serialFilter` and a `JChannel` secured with `AUTH` + encryption via
`channelProperties`.
## Defense-in-depth note
JGroups performs object deserialization inside its own receive path, so the
JVM-wide `jdk.serialFilter` together with channel authentication and
encryption
are the primary mitigations. The component-level `deserializationFilter` is a
defense-in-depth allow-list for the message body type and is documented as
such.
## Tests
`JGroupsDeserializationFilterTest` sends an allowed type (routed) and a
denied
type (refused, proven via per-sender FIFO ordering against a sentinel).
## Docs
Component documentation gains a Security section. No upgrade-guide entry
(this
adds a new option; it does not change behavior for existing routes).
_Claude Code on behalf of oscerd_
🤖 Generated with [Claude Code](https://claude.com/claude-code)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]