This is an automated email from the ASF dual-hosted git repository.

quantranhong1999 pushed a commit to branch 3.8.x
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 28ea2f72e533618069c2859a4947d060fca7c5f0
Author: Quan Tran <[email protected]>
AuthorDate: Wed Jul 29 10:20:56 2026 +0700

    [DOCUMENTATION] Webadmin: authenticate distributed provisioning scripts
    
    The distributed benchmark provisioning script now supports the optional 
WEBADMIN_PASSWORD environment variable and fails on unauthenticated WebAdmin 
calls.
---
 .../ROOT/pages/benchmark/james-benchmark.adoc      |  8 ++++++-
 .../docs/modules/ROOT/pages/benchmark/provision.sh | 26 +++++++++++++++-------
 2 files changed, 25 insertions(+), 9 deletions(-)

diff --git 
a/server/apps/distributed-app/docs/modules/ROOT/pages/benchmark/james-benchmark.adoc
 
b/server/apps/distributed-app/docs/modules/ROOT/pages/benchmark/james-benchmark.adoc
index 839c4296e7..a7bdf31f66 100644
--- 
a/server/apps/distributed-app/docs/modules/ROOT/pages/benchmark/james-benchmark.adoc
+++ 
b/server/apps/distributed-app/docs/modules/ROOT/pages/benchmark/james-benchmark.adoc
@@ -55,6 +55,13 @@ chmod +x provision.sh
 sudo apt-get install postfix
 ----
 
+* Retrieve the generated WebAdmin password from the James startup logs and 
expose it to the provisioning script:
+----
+export WEBADMIN_PASSWORD="replace-with-generated-webadmin-password"
+----
+
+Omit this variable only when WebAdmin password authentication is explicitly 
disabled.
+
 * Run the provision script:
 ----
 ./provision.sh
@@ -98,4 +105,3 @@ A sample IMAP performance testing result 
(PlatformValidationSimulation):
 image::james-imap-base-performance.png[]
 
 If you get a IMAP performance far below this base performance, you should 
consider investigating for performance issues.
-
diff --git 
a/server/apps/distributed-app/docs/modules/ROOT/pages/benchmark/provision.sh 
b/server/apps/distributed-app/docs/modules/ROOT/pages/benchmark/provision.sh
index 0f3c86e8f5..b5d528f978 100755
--- a/server/apps/distributed-app/docs/modules/ROOT/pages/benchmark/provision.sh
+++ b/server/apps/distributed-app/docs/modules/ROOT/pages/benchmark/provision.sh
@@ -1,5 +1,7 @@
 #!/bin/bash
 
+set -eu
+
 export WEBADMIN_BASE_URL="http://localhost:8000";
 export SMTP_URL="localhost:25"
 export DOMAIN_NAME="domain.org"
@@ -7,32 +9,40 @@ export USERS_COUNT=10
 export DUMMY_MAILBOXES_COUNT=10
 export DUMMY_EMAILS_COUNT=100
 
+call_webadmin() {
+  if [ -n "${WEBADMIN_PASSWORD:-}" ]; then
+    curl --fail --header "Password: ${WEBADMIN_PASSWORD}" "$@"
+  else
+    curl --fail "$@"
+  fi
+}
+
 # Create domain
-curl -X PUT ${WEBADMIN_BASE_URL}/domains/${DOMAIN_NAME}
+call_webadmin -X PUT ${WEBADMIN_BASE_URL}/domains/${DOMAIN_NAME}
 
 for i in $(seq 1 $USERS_COUNT)
 do
   # Create user
    echo "Creating user $i"
    username=user${i}@$DOMAIN_NAME
-   curl -XPUT ${WEBADMIN_BASE_URL}/users/$username \
+   call_webadmin -XPUT ${WEBADMIN_BASE_URL}/users/$username \
      -d '{"password":"secret"}' \
      -H "Content-Type: application/json"
 
   # Create mailboxes for each user
    echo "Creating user $i mailboxes"
    # Create some basic mailboxes
-   curl -XPUT ${WEBADMIN_BASE_URL}/users/${username}/mailboxes/INBOX
-   curl -XPUT ${WEBADMIN_BASE_URL}/users/${username}/mailboxes/Outbox
-   curl -XPUT ${WEBADMIN_BASE_URL}/users/${username}/mailboxes/Sent
-   curl -XPUT ${WEBADMIN_BASE_URL}/users/${username}/mailboxes/Draft
-   curl -XPUT ${WEBADMIN_BASE_URL}/users/${username}/mailboxes/Trash
+   call_webadmin -XPUT ${WEBADMIN_BASE_URL}/users/${username}/mailboxes/INBOX
+   call_webadmin -XPUT ${WEBADMIN_BASE_URL}/users/${username}/mailboxes/Outbox
+   call_webadmin -XPUT ${WEBADMIN_BASE_URL}/users/${username}/mailboxes/Sent
+   call_webadmin -XPUT ${WEBADMIN_BASE_URL}/users/${username}/mailboxes/Draft
+   call_webadmin -XPUT ${WEBADMIN_BASE_URL}/users/${username}/mailboxes/Trash
 
    # Create some other dummy mailboxes
    for j in $(seq 1 $DUMMY_MAILBOXES_COUNT)
    do
      dummyMailbox=MAILBOX${j}
-     curl -XPUT ${WEBADMIN_BASE_URL}/users/${username}/mailboxes/$dummyMailbox
+     call_webadmin -XPUT 
${WEBADMIN_BASE_URL}/users/${username}/mailboxes/$dummyMailbox
    done
 done
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to