Stop docker exec from consuming so-user's piped password

Adding a user failed with "Password does not meet the minimum requirements"
for passwords that were well over the eight character minimum.

so-user reads the password from stdin in updatePassword, but verifyEnvironment
runs first and calls kratosCurl, which ran docker exec with -i. That attaches
stdin and drains the pipe the caller sent the password on, so the later
read -rs saw EOF, password was empty, and expr length "" tripped the minimum
length check.

No kratosCurl or hydraCurl call sends a body on stdin; every one passes it as
a -d argument, so -i was never needed. Dropping it leaves the admin API
responses unchanged.

so-client had the same wrapper for the Hydra admin API. It does not currently
read stdin, but the flag drains its caller's pipe just the same, so it is
dropped there too.
This commit is contained in:
Mike Reeves
2026-09-18 17:04:17 -04:00
parent d9eff9aa9e
commit b71fd93f9d
2 changed files with 2 additions and 2 deletions
+1 -1
View File
@@ -126,7 +126,7 @@ function fail() {
}
function hydraCurl() {
docker exec -i "$hydraContainer" curl "$@"
docker exec "$hydraContainer" curl "$@"
}
function require() {
+1 -1
View File
@@ -156,7 +156,7 @@ function fail() {
}
function kratosCurl() {
docker exec -i "$kratosContainer" curl "$@"
docker exec "$kratosContainer" curl "$@"
}
function require() {