[ 
https://issues.apache.org/jira/browse/GEODE-9758?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17514301#comment-17514301
 ] 

ASF subversion and git services commented on GEODE-9758:
--------------------------------------------------------

Commit 92e0e89c982ef4ed53e0a7be0194aea45adb8726 in geode's branch 
refs/heads/support/1.14 from Kirk Lund
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=92e0e89 ]

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)

Reply via email to