morazow commented on code in PR #2506:
URL: https://github.com/apache/fluss/pull/2506#discussion_r2851653984


##########
website/docs/install-deploy/deploying-with-helm.md:
##########
@@ -245,16 +253,69 @@ The chart automatically configures listeners for internal 
cluster communication
 - **Internal Port (9123)**: Used for internal communication within the cluster
 - **Client Port (9124)**: Used for client connections
 
-Custom listener configuration:
+Default listeners configuration:
 
 ```yaml
 listeners:
   internal:
+    protocol: PLAINTEXT
     port: 9123
+    security:
+      mechanism: PLAIN
+      users: []
   client:
+    protocol: PLAINTEXT
     port: 9124
+    security:
+      mechanism: PLAIN
+      users: []
 ```
 
+To enable SASL based authentication, set any of the protocols to `SASL`.
+
+### Enabling Secure Connection
+
+With the helm deployment, you can specify authentication protocols when 
connecting to the Fluss cluster.
+
+The following table shows the supported protocols and security they provide:
+
+| Method      | Authentication | TLS Encryption     |
+|-------------|:--------------:|:------------------:|
+| `PLAINTEXT` | No             | No                 |
+| `SASL`      | Yes            | No                 |
+
+By default, the `PLAINTEXT` protocol is used.
+
+The SASL authentication will be enabled if any of the listener protocols is 
using `SASL`.
+
+Set these values for additional configurations:
+
+```yaml
+listeners:
+  internal:
+    protocol: SASL
+    port: 9123
+    security:
+      mechanism: PLAIN
+      users:

Review Comment:
   Hello @loserwang1024 👋 ,
   
   Yes, indeed. It works because of the SASL listener prefix, 
[JaasContext#126](https://github.com/apache/fluss/blob/main/fluss-common/src/main/java/org/apache/fluss/security/auth/sasl/jaas/JaasContext.java#L126).
   
   For example, with both internal and client SASL enabled, the following jaas 
file will be created:
   
   _$ root@coordinator-server-0:/opt/fluss# cat /etc/fluss/conf/jaas.conf_
   
   ```
   internal.FlussServer {
      org.apache.fluss.security.auth.sasl.plain.PlainLoginModule required
      "user_internal-hfpjhuc1gtbq"="yOxDGiWv4QD0XILF2KBlXoStM9ITavux";
   };
   
   client.FlussServer {
      org.apache.fluss.security.auth.sasl.plain.PlainLoginModule required
      "user_mtoraz"="passWA";
   };
   
   FlussClient {
      org.apache.fluss.security.auth.sasl.plain.PlainLoginModule required
      username="internal-hfpjhuc1gtbq"
      password="yOxDGiWv4QD0XILF2KBlXoStM9ITavux";
   };
   
   ZookeeperClient {
      
org.apache.fluss.shaded.zookeeper3.org.apache.zookeeper.server.auth.DigestLoginModule
 required
      username="zk-admin"
      password="zk-password";
   };
   ```
   
   As you can see the FlussServer is prefixed for internal and client. The 
FlussClient doesn't have any prefix, but it is fine since here it acts as 
client only for the internal communications.
   
   The to run the client jobs:
   
   ```
   
FLUSS_TEST_BOOTSTRAP=coordinator-server-0.coordinator-server-hs.fluss.svc.cluster.local:9124
 FLUSS_TEST_USERNAME=mtoraz FLUSS_TEST_PASSWORD=passWA java -jar 
fluss-smoke-test-sasl.jar test
   ```
   
   users can use the client username and password.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to