This is an automated email from the ASF dual-hosted git repository.
jinwoo pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push:
new 863ba8c708 Document update - Added serialization to Security section
(#7923)
863ba8c708 is described below
commit 863ba8c708bb64c5ea9e0d7c3b9315639b8d88ec
Author: kaajaln2 <[email protected]>
AuthorDate: Thu Sep 11 07:18:29 2025 -0400
Document update - Added serialization to Security section (#7923)
* Document update - Added serialization to Security section
Added serialization page under Security section
Added link to serialization page from Security model page
Added a bullet point to the Security Implementaton Overview page
* Document update - Added serialization to Security section
Added serialization page under Security section
Added link to serialization page from Security model page
Added a bullet point to the Security Implementaton Overview page
Removed Java version
* Document update: Removed java version in serialization section
---
.../source/subnavs/geode-subnav.erb | 3 ++
geode-docs/security/chapter_overview.html.md.erb | 4 ++
.../security/implementing_security.html.md.erb | 2 +
geode-docs/security/security_model.html.md.erb | 6 ++-
geode-docs/security/serialization.html.md.erb | 54 ++++++++++++++++++++++
5 files changed, 67 insertions(+), 2 deletions(-)
diff --git a/geode-book/master_middleman/source/subnavs/geode-subnav.erb
b/geode-book/master_middleman/source/subnavs/geode-subnav.erb
index 49cd752f97..b4ba7467a4 100644
--- a/geode-book/master_middleman/source/subnavs/geode-subnav.erb
+++ b/geode-book/master_middleman/source/subnavs/geode-subnav.erb
@@ -159,6 +159,9 @@ limitations under the License.
</li>
</ul>
</li>
+ <li>
+ <a
href="/docs/guide/<%=vars.product_version_nodot%>/security/serialization.html">Serialization</a>
+ </li>
</ul>
</li>
diff --git a/geode-docs/security/chapter_overview.html.md.erb
b/geode-docs/security/chapter_overview.html.md.erb
index f75376d6f2..3984dd5ae4 100644
--- a/geode-docs/security/chapter_overview.html.md.erb
+++ b/geode-docs/security/chapter_overview.html.md.erb
@@ -48,3 +48,7 @@ The security framework permits authentication of connecting
components and autho
- **[SSL](../security/ssl_overview.html)**
SSL protects your data in transit between applications.
+
+- **[Serialization](../security/serialization.html)**
+
+ This section describes the serialization mechanisms available in Apache
Geode, including global serialization filters and PDX serialization.
diff --git a/geode-docs/security/implementing_security.html.md.erb
b/geode-docs/security/implementing_security.html.md.erb
index fcccda0933..d684346dbf 100644
--- a/geode-docs/security/implementing_security.html.md.erb
+++ b/geode-docs/security/implementing_security.html.md.erb
@@ -37,6 +37,8 @@ SSL-based, rather than plain socket connections.
You can enable SSL separately for peer-to-peer, client, JMX, gateway senders
and receivers, and HTTP connections.
- **Post processing of region data**. Return values for operations that
return region values may be formatted.
+- **Serialization**. Control and filter object serialization, particularly
+ in the context of security and performance.
## Overview
diff --git a/geode-docs/security/security_model.html.md.erb
b/geode-docs/security/security_model.html.md.erb
index fc9ccafebe..1a7f3842b3 100644
--- a/geode-docs/security/security_model.html.md.erb
+++ b/geode-docs/security/security_model.html.md.erb
@@ -22,9 +22,10 @@ Every component of Apache Geode is built with security
considerations as a top p
solutions require user-specific design and implementation. Geode's default
configuration combines maximum flexibility
and performance without any input needed from the user. Because of this,
certain security measures like
**[authentication](authentication_overview.html)**,
-**[authorization](authorization_overview.html)** and
+**[authorization](authorization_overview.html)**,
+**[serialization](../security/serialization.html)** and
**[over-the-wire encryption](ssl_overview.html)**
-are absent from a default Geode installation.
+are absent from a default Geode installation.
It is highly recommended that users review Geode's security capabilities and
implement them as they see fit. See the
**[Security Implementation Introduction and
Overview](implementing_security.html)**
to get started with Apache Geode security.
@@ -33,3 +34,4 @@ Additional documentation related to security can be found on
Apache Geode Wiki
[Geode Security
Framework](https://cwiki.apache.org/confluence/display/GEODE/Geode+Security+Framework)
and
[Geode Integrated
Security](https://cwiki.apache.org/confluence/display/GEODE/Geode+Integrated+Security).
+
diff --git a/geode-docs/security/serialization.html.md.erb
b/geode-docs/security/serialization.html.md.erb
new file mode 100644
index 0000000000..b96cb7178d
--- /dev/null
+++ b/geode-docs/security/serialization.html.md.erb
@@ -0,0 +1,54 @@
+---
+title: Serialization
+---
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+Apache Geode offers mechanisms to control and filter object serialization,
particularly
+ in the context of security and performance. This is primarily achieved
through:
+
+
+## Global Serialization Filter (Java)
+
+For deployments using Java, a global serialization filter can be enabled to
restrict the types of objects that can be serialized and
+deserialized within the Geode process. This helps mitigate risks associated
with deserialization of untrusted data, a common vulnerability.
+
+- To enable this, the Java system property `geode.enableGlobalSerialFilter` is
set to true when starting Geode locators and servers.
+
+- Additionally, the `serializable-object-filter` configuration option, used in
conjunction with `validate-serializable-objects,` is used to
+specify a whitelist of user-defined classes that are allowed to be
serialized/deserialized, in addition to standard JDK and Geode classes.
+ This allows for fine-grained control over which custom objects are permitted
in the system.
+
+## PDX Serialization
+
+Apache Geode's Portable Data eXchange (PDX) serialization offers a more robust
and flexible approach to data serialization, providing features
+like schema evolution and language independence. While not a "filter" in the
same sense as the global serialization filter, PDX provides control
+over how objects are serialized and deserialized.
+
+- **PdxSerializer:** You can implement a custom `PdxSerializer` to define how
specific domain objects are serialized and deserialized, allowing
+ for selective handling of fields or transformations during the process.
+
+- **Reflection-Based Auto-Serialization:** PDX also supports automatic
reflection-based serialization, where Geode can serialize objects without
+ requiring explicit implementation of `PdxSerializable` in your domain
classes. This can be configured to include or exclude specific types based
+ on criteria like package names, providing a form of type filtering.
+
+
+
+
+ In conclusion, Apache Geode provides serialization filtering capabilities
through a global filter for security hardening in Java 8 environments and
+ through the flexible configurations of PDX serialization for fine-grained
control over data handling and type inclusion/exclusion.