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]
