Andrea Cosentino created CAMEL-24370:
----------------------------------------

             Summary: camel-netty - resolve the shared deserialization filter 
in the object codecs and expose deserializationFilter on the endpoint
                 Key: CAMEL-24370
                 URL: https://issues.apache.org/jira/browse/CAMEL-24370
             Project: Camel
          Issue Type: Improvement
          Components: camel-netty
            Reporter: Andrea Cosentino


h3. Background

The camel-netty object codecs are the last Java-serialization entry points in 
the component tree that do not resolve their {{ObjectInputFilter}} through the 
shared {{DeserializationFilterHelper}} introduced in CAMEL-23815.

h3. Current state

* {{org.apache.camel.component.netty.codec.ObjectDecoder}} sets an 
{{ObjectInputFilter}} only when the {{deserializationFilter}} constructor 
argument is non-null. The single-argument constructor passes {{null}}, so 
decoders built that way apply no filter at all and only emit a WARN log.
* {{org.apache.camel.component.netty.codec.DatagramPacketObjectDecoder}} 
inherits the same behaviour by delegation.
* Within the same component, {{NettyConverter}} already calls 
{{DeserializationFilterHelper.resolveDeserializationFilter(null)}}, so the 
type-converter path and the codec path behave inconsistently.
* The netty endpoint exposes no {{deserializationFilter}} option, while 
camel-netty-http and twelve other components do.

h3. Proposed change

# Resolve the filter in {{ObjectDecoder}} through 
{{DeserializationFilterHelper.resolveDeserializationFilter(...)}}, so that an 
unset pattern falls back to the JVM-wide {{jdk.serialFilter}} and then to the 
shared Camel default instead of applying no filter.
# Add a {{deserializationFilter}} option on the netty component and endpoint 
for parity with camel-netty-http, and thread it through to the codecs.
# Document the option and the recommended setting for routes that use the 
{{ObjectEncoder}} / {{ObjectDecoder}} pair in {{netty-component.adoc}}.

h3. Compatibility

This is a behaviour change for existing routes that wire {{ObjectDecoder}} 
explicitly: classes outside the default allow-list will start to be rejected. 
It needs an entry in 
{{docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_22.adoc}}.

h3. Related

CAMEL-23297 added the {{deserializationFilter}} argument to these codecs, 
CAMEL-23815 introduced the shared helper, and CAMEL-24296 applied the same 
default to {{CamelObjectInputStream}}.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to