[
https://issues.apache.org/jira/browse/GEODE-9758?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17510936#comment-17510936
]
ASF subversion and git services commented on GEODE-9758:
--------------------------------------------------------
Commit f0809e411d561226f736adca9d40cbbe27033e53 in geode's branch
refs/heads/support/1.14 from Kirk Lund
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=f0809e4 ]
GEODE-9758: Add internal serial filter API (#7217)
GEODE-9758: Add internal serial filter API #7217
Expand ObjectInputStreamFilterWrapper to be an internal API which
supports all of Geode's uses of Java's ObjectInputFilter.
Introduce a new system property, geode.enableGlobalSerialFilter, to
enable a process-wide filter with all serializable Geode classes on the
classpath and the value of serializable-object-filter accept-listed.
To enable the process-wide filter with GFSH start commands, add:
* --J=-Dgeode.enableGlobalSerialFilter=true
Functional Capabilities
The internal API lives in geode-serialization and works on OpenJDK
based JREs providing a facade for Java's ObjectInputFilter in Java 8
and Java 9 or greater using reflection. The API provides the following
capabilities:
* creating an ObjectInputFilter
* setting an ObjectInputFilter on an ObjectInputStream
* getting an ObjectInputFilter from a ObjectInputStream
* setting a process-wide ObjectInputFilter
* getting a process-wide ObjectInputFilter
Design Notes
The API defines the following primary interface types:
* factory interfaces for creating instances of types within the API
* filter interfaces to split out single ops from Java's
ObjectInputFilter
* configuration interfaces for handling system properties, logging,
and config validation
The concrete classes in the API receive parameters injected via a
constructor for any collaborators that are not specified by the
interfaces. This is intentional even when the instance is only used
once before de-referencing it. All collaborators that are defined in
the interface are passed in as parameters to the implementing
method; all others are passed in via the constructor and stored as
fields.
(cherry picked from commit 7978abf34707d11da45cff0b7cb7445f18d21438)
> Provide an easy to configure a process-wide serialization filter for use on
> Java 8
> ----------------------------------------------------------------------------------
>
> Key: GEODE-9758
> URL: https://issues.apache.org/jira/browse/GEODE-9758
> Project: Geode
> Issue Type: Improvement
> Components: configuration, serialization
> Affects Versions: 1.12.7, 1.13.0, 1.14.0
> Reporter: Jianxia Chen
> Assignee: Kirk Lund
> Priority: Major
> Labels: GeodeOperationAPI, docs, pull-request-available
>
> Provide an easy way to configure a process-wide serialization filter for use
> on Java 8. When enabled, validate-serializable-objects should be enabled and
> the process-wide serialization filter should be configured to accept only JDK
> classes and Geode classes in addition to anything the user might specify with
> serializable-object-filter.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)