Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Security v4 #1320

Merged
merged 43 commits into from
Oct 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
98fc23e
1st pass Data Structures nav tidy
oliverhowell Jul 26, 2024
9ebcfb3
Fixes for snapshort version and nav; add RN links
oliverhowell Jul 29, 2024
c32413d
Add nav
oliverhowell Jul 29, 2024
599f089
Merge branch 'main' into main
oliverhowell Jul 29, 2024
e819ece
Add backport to 5.5 GH action
oliverhowell Jul 29, 2024
10d18a3
Fix description
oliverhowell Jul 29, 2024
cf1cfcd
Merge branch 'main' into main
oliverhowell Jul 29, 2024
78cc0dd
Merge branch 'hazelcast:main' into main
oliverhowell Jul 29, 2024
a5a60cb
Reorganize Security sections and introduce GitHub workflows to valida…
kwart Aug 20, 2024
c2b3eb9
Fix TLS authentication page
kwart Aug 26, 2024
e85bc40
Improve TLS authn snippets; Describe skip-* login options in authenti…
kwart Aug 26, 2024
0b53a29
Update docs/modules/clients/pages/java.adoc
kwart Sep 9, 2024
032b8d0
Merge remote-tracking branch 'upstream/main' into cleanup/6.0/security
kwart Sep 9, 2024
469f310
Update docs/modules/clients/pages/java.adoc
kwart Sep 9, 2024
60f5c63
Update docs/modules/cluster-performance/pages/performance-tuning.adoc
kwart Sep 9, 2024
bfdb3bc
Update docs/modules/secure-cluster/pages/security-defaults.adoc
kwart Sep 9, 2024
6dd1195
Update docs/modules/secure-cluster/pages/security-defaults.adoc
kwart Sep 9, 2024
512feb5
Update docs/modules/clients/pages/java.adoc
kwart Sep 9, 2024
c6288cd
Update docs/modules/security/pages/client-authorization.adoc
kwart Sep 9, 2024
26eff01
Update docs/modules/spring/pages/configuration.adoc
kwart Sep 9, 2024
1d4a73f
Update docs/modules/security/pages/simple-authentication.adoc
kwart Sep 9, 2024
09736b8
Update docs/modules/security/pages/authentication-overview.adoc
kwart Sep 9, 2024
dbc420b
Remove the leftover native-client-security page
kwart Sep 9, 2024
0801e83
Update docs/modules/security/pages/authentication-overview.adoc
kwart Sep 9, 2024
5d15013
Update docs/modules/security/pages/enabling-security.adoc
kwart Sep 9, 2024
5642398
Update docs/modules/security/pages/overview.adoc
kwart Sep 9, 2024
3887a9e
Describe what the LDAP server is
kwart Sep 9, 2024
e9b2be4
Add authentication definition
kwart Sep 9, 2024
f955615
DOC-172: update Security PR with review comments and suggested change…
oliverhowell Oct 11, 2024
6508a61
DOC-172: further changes across files
oliverhowell Oct 11, 2024
a006351
Remove alias temp
oliverhowell Oct 11, 2024
78473d4
DOC-172: add page alias back in; dupe link
oliverhowell Oct 11, 2024
cf973aa
Nuke file option
oliverhowell Oct 11, 2024
c5dce83
Merge branch 'main', remote-tracking branch 'upstream' into SecurityV4
oliverhowell Oct 11, 2024
a9fd8a5
Add clean java page
oliverhowell Oct 11, 2024
0148744
Merge branch 'main' into SecurityV4
oliverhowell Oct 14, 2024
2663c5f
Restore nav changes and API tips removed during messy merge
oliverhowell Oct 14, 2024
4c944c6
Add Debezium 2.x docs (#1149)
TomaszGaweda Oct 8, 2024
7f57a24
Feast diagrams (#1288)
yuce Sep 16, 2024
cf0d343
Fix Feast doc section header (#1292)
yuce Sep 16, 2024
a94004b
Clarify (lack of) backup redistribution on data structure level [HZG-…
burakgok Oct 9, 2024
88720a8
Fix feast EE status
oliverhowell Oct 14, 2024
780497d
EE status x 2
oliverhowell Oct 14, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/action-updater.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v4.1.4
with:
# [Required] Access token with `workflow` scope.
token: ${{ secrets.ACTION_UPDATER }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/adoc-html.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- uses: actions/checkout@v4.1.4
- uses: actions/setup-node@v4.0.2
with:
node-version: 20
- name: Convert adoc
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/backport-5-0.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
steps:

- name: checkout
uses: actions/checkout@v4
uses: actions/checkout@v4.1.4
with:
fetch-depth: 0

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/backport-5-1.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
steps:

- name: checkout
uses: actions/checkout@v4
uses: actions/checkout@v4.1.4
with:
fetch-depth: 0

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/backport-5-2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
steps:

- name: checkout
uses: actions/checkout@v4
uses: actions/checkout@v4.1.4
with:
fetch-depth: 0

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/backport-5-3.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
steps:

- name: checkout
uses: actions/checkout@v4
uses: actions/checkout@v4.1.4
with:
fetch-depth: 0

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/backport-5-4.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
steps:

- name: checkout
uses: actions/checkout@v4
uses: actions/checkout@v4.1.4
with:
fetch-depth: 0

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/backport.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
steps:

- name: checkout
uses: actions/checkout@v4
uses: actions/checkout@v4.1.4
with:
fetch-depth: 0

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/forwardport.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
steps:

- name: checkout
uses: actions/checkout@v4
uses: actions/checkout@v4.1.4
with:
fetch-depth: 0

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/to-plain-html.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v4.1.4
with:
token: ${{ secrets.TO_HTML }}
- name: Asciidoc to html
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- uses: actions/checkout@v4.1.4
- uses: actions/setup-node@v4.0.2
with:
node-version: 20
- name: Check for broken internal links
Expand Down
4 changes: 2 additions & 2 deletions docs/antora.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ asciidoc:
open-source-product-name: 'Community Edition'
enterprise-product-name: 'Enterprise Edition'
java-client-new: 'Java Client (Standalone)'
java-client: 'Java Client and Embedded Server'
url-cloud-signup: https://cloud.hazelcast.com/sign-up
java-client: 'Java Client and Embedded Server'
url-cloud-signup: https://cloud.hazelcast.com/sign-up
hazelcast-cloud: Cloud
ucn: User Code Namespaces
ucd: User Code Deployment
Expand Down
7 changes: 3 additions & 4 deletions docs/modules/clients/pages/java.adoc
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
= Java Client
:page-api-reference: https://docs.hazelcast.org/docs/{page-latest-supported-java-client}/javadoc
:page-toclevels: 1
:page-aliases: security:native-client-security.adoc
:description: Hazelcast provides a {java-client} within the standard distribution you can start using right away, and also a lightweight {java-client-new} that is available in Beta.
[[java-client]]

// check redirects

== Overview

Hazelcast provides a {java-client} which you can use to connect to a Hazelcast cluster. `hazelcast-<VERSION>.jar` is bundled in the Hazelcast standard package, so just add `hazelcast-<VERSION>.jar` to your classpath and you can start using this client as if you are using the Hazelcast API.
Expand Down Expand Up @@ -407,7 +406,7 @@ clientConfig.setClusterName("dev");
=== Configure client security
[blue]*Hazelcast {enterprise-product-name}*

You can define control mechanisms for clients to control authentication and authorisation. For more information, see xref:security:native-client-security.adoc[].
You can define control mechanisms for clients to control authentication and authorisation. For more information, see xref:security:client-authorization.adoc[].

You can provide the Java client with an identity for cluster authentication. The identity of the connecting client is defined on the client side.
Usually, there are no security realms on the clients; only the identity defined in the security configuration.
Expand Down Expand Up @@ -1296,7 +1295,7 @@ You can configure the cluster routing mode to suit your requirements, as describ
The following examples show the configuration for each cluster routing mode.

NOTE: If your clients want to use temporary permissions defined in a member, see
xref:security:native-client-security.adoc#handling-permissions-when-a-new-member-joins[Handling Permissions].
xref:security:client-authorization.adoc#handling-permissions-when-a-new-member-joins[Handling Permissions].

**Client ALL_MEMBERS routing**

Expand Down
7 changes: 4 additions & 3 deletions docs/modules/clients/pages/memcache.adoc
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
= Memcache Client

NOTE: Hazelcast Memcache Client only supports ASCII protocol. Binary Protocol is not supported.

A Memcache client written in any language can talk directly to a Hazelcast cluster.
No additional configuration is required.

NOTE: Hazelcast Memcache Client only supports ASCII protocol. Binary Protocol is not supported.

To be able to use a Memcache client, you must enable the Memcache client request listener service using either one of the following configuration options:
To be able to use a Memcache client, you must enable
the Memcache client request listener service using either one of the following configuration options:

1 - Using the `network` configuration element:

Expand Down
43 changes: 16 additions & 27 deletions docs/modules/cluster-performance/pages/performance-tips.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -596,37 +596,26 @@ Here are the essential tips:
* But it needs to be considered from the outset, as it affects architecture, performance and coding
* Security can then be added before go-live without rework

TLS/SSL can have a significant impact on performance. There are a few ways to
increase the performance.

The first thing that can be done is making sure that AES intrinsics are used.
Modern CPUs (2010 or newer Westmere) have hardware support for AES encryption/decryption
and the JIT automatically makes use of these AES intrinsics. They can also be
explicitly enabled using `-XX:+UseAES -XX:+UseAESIntrinsics`,
or disabled using `-XX:-UseAES -XX:-UseAESIntrinsics`.

A lot of encryption algorithms make use of padding because they encrypt/decrypt in
fixed sized blocks. If there is no enough data
for a block, the algorithm relies on random number generation to pad. Under Linux,
the JVM automatically makes use of `/dev/random` for
the generation of random numbers. `/dev/random` relies on entropy to be able to
=== TLS Tuning

You can improve TLS performance in a number of ways.

Check if `securerandom.source` is configured to `/dev/urandom` in your
`<JAVA_HOME>/conf/security/java.security` file.
If there is `/dev/random` instead, it might block on operations which
require random data generation.
The `/dev/random` relies on entropy to be able to
generate random numbers. However, if this entropy is
insufficient to keep up with the rate requiring random numbers, it can slow down
the encryption/decryption since `/dev/random` will
block; it could block for minutes waiting for sufficient entropy . This can be fixed
by setting the `-Djava.security.egd=file:/dev/./urandom` system property.
block. This can be fixed
by setting the `-Djava.security.egd=file:/dev/urandom` system property.
For a more permanent solution, modify the
`<JAVA_HOME>/jre/lib/security/java.security` file, look for the
`securerandom.source=/dev/urandom` and change it
to `securerandom.source=file:/dev/./urandom`. Switching to `/dev/urandom` could
be controversial because `/dev/urandom` will not
block if there is a shortage of entropy and the returned random values could
theoretically be vulnerable to a cryptographic attack.
If this is a concern in your application, use `/dev/random` instead.

Hazelcast's Java smart client automatically makes use of extra I/O threads
for encryption/decryption and this have a significant impact on the performance.
This can be changed using the `hazelcast.client.io.input.thread.count` and
`<JAVA_HOME>/conf/security/java.security` file and change directly the `securerandom.source` property value.

Clients using Hazelcast's Java `ALL_MEMBERS` and `MULTI_MEMBER` cluster routing modes automatically make use of extra I/O threads
for encryption/decryption and this has a significant impact on the performance.
The number of threads used can be changed using the `hazelcast.client.io.input.thread.count` and
`hazelcast.client.io.output.thread.count` client system properties.
By default it is 1 input thread and 1 output thread. If TLS/SSL is enabled,
it defaults to 3 input threads and 3 output threads.
Expand Down
Loading
Loading