Skip to content

Commit b9feb9a

Browse files
kaajaln2JinwooHwang
authored andcommitted
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 (cherry picked from commit 863ba8c)
1 parent 37292f4 commit b9feb9a

File tree

5 files changed

+67
-2
lines changed

5 files changed

+67
-2
lines changed

geode-book/master_middleman/source/subnavs/geode-subnav.erb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,9 @@ limitations under the License.
162162
</li>
163163
</ul>
164164
</li>
165+
<li>
166+
<a href="/docs/guide/<%=vars.product_version_nodot%>/security/serialization.html">Serialization</a>
167+
</li>
165168
</ul>
166169
</li>
167170

geode-docs/security/chapter_overview.html.md.erb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,3 +48,7 @@ The security framework permits authentication of connecting components and autho
4848
- **[SSL](../security/ssl_overview.html)**
4949

5050
SSL protects your data in transit between applications.
51+
52+
- **[Serialization](../security/serialization.html)**
53+
54+
This section describes the serialization mechanisms available in Apache Geode, including global serialization filters and PDX serialization.

geode-docs/security/implementing_security.html.md.erb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ SSL-based, rather than plain socket connections.
3737
You can enable SSL separately for peer-to-peer, client, JMX, gateway senders and receivers, and HTTP connections.
3838
- **Post processing of region data**. Return values for operations that
3939
return region values may be formatted.
40+
- **Serialization**. Control and filter object serialization, particularly
41+
in the context of security and performance.
4042

4143
## Overview
4244

geode-docs/security/security_model.html.md.erb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,10 @@ Every component of Apache Geode is built with security considerations as a top p
2222
solutions require user-specific design and implementation. Geode's default configuration combines maximum flexibility
2323
and performance without any input needed from the user. Because of this, certain security measures like
2424
**[authentication](authentication_overview.html)**,
25-
**[authorization](authorization_overview.html)** and
25+
**[authorization](authorization_overview.html)**,
26+
**[serialization](../security/serialization.html)** and
2627
**[over-the-wire encryption](ssl_overview.html)**
27-
are absent from a default Geode installation.
28+
are absent from a default Geode installation.
2829
It is highly recommended that users review Geode's security capabilities and implement them as they see fit. See the
2930
**[Security Implementation Introduction and Overview](implementing_security.html)**
3031
to get started with Apache Geode security.
@@ -33,3 +34,4 @@ Additional documentation related to security can be found on Apache Geode Wiki
3334

3435
[Geode Security Framework](https://cwiki.apache.org/confluence/display/GEODE/Geode+Security+Framework) and
3536
[Geode Integrated Security](https://cwiki.apache.org/confluence/display/GEODE/Geode+Integrated+Security).
37+
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
---
2+
title: Serialization
3+
---
4+
5+
<!--
6+
Licensed to the Apache Software Foundation (ASF) under one or more
7+
contributor license agreements. See the NOTICE file distributed with
8+
this work for additional information regarding copyright ownership.
9+
The ASF licenses this file to You under the Apache License, Version 2.0
10+
(the "License"); you may not use this file except in compliance with
11+
the License. You may obtain a copy of the License at
12+
13+
http://www.apache.org/licenses/LICENSE-2.0
14+
15+
Unless required by applicable law or agreed to in writing, software
16+
distributed under the License is distributed on an "AS IS" BASIS,
17+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18+
See the License for the specific language governing permissions and
19+
limitations under the License.
20+
-->
21+
22+
Apache Geode offers mechanisms to control and filter object serialization, particularly
23+
in the context of security and performance. This is primarily achieved through:
24+
25+
26+
## Global Serialization Filter (Java)
27+
28+
For deployments using Java, a global serialization filter can be enabled to restrict the types of objects that can be serialized and
29+
deserialized within the Geode process. This helps mitigate risks associated with deserialization of untrusted data, a common vulnerability.
30+
31+
- To enable this, the Java system property `geode.enableGlobalSerialFilter` is set to true when starting Geode locators and servers.
32+
33+
- Additionally, the `serializable-object-filter` configuration option, used in conjunction with `validate-serializable-objects,` is used to
34+
specify a whitelist of user-defined classes that are allowed to be serialized/deserialized, in addition to standard JDK and Geode classes.
35+
This allows for fine-grained control over which custom objects are permitted in the system.
36+
37+
## PDX Serialization
38+
39+
Apache Geode's Portable Data eXchange (PDX) serialization offers a more robust and flexible approach to data serialization, providing features
40+
like schema evolution and language independence. While not a "filter" in the same sense as the global serialization filter, PDX provides control
41+
over how objects are serialized and deserialized.
42+
43+
- **PdxSerializer:** You can implement a custom `PdxSerializer` to define how specific domain objects are serialized and deserialized, allowing
44+
for selective handling of fields or transformations during the process.
45+
46+
- **Reflection-Based Auto-Serialization:** PDX also supports automatic reflection-based serialization, where Geode can serialize objects without
47+
requiring explicit implementation of `PdxSerializable` in your domain classes. This can be configured to include or exclude specific types based
48+
on criteria like package names, providing a form of type filtering.
49+
50+
51+
52+
53+
In conclusion, Apache Geode provides serialization filtering capabilities through a global filter for security hardening in Java 8 environments and
54+
through the flexible configurations of PDX serialization for fine-grained control over data handling and type inclusion/exclusion.

0 commit comments

Comments
 (0)