mirror of
https://github.com/osixia/container-openldap.git
synced 2026-11-06 12:40:36 -04:00
61 lines
2.5 KiB
Bash
61 lines
2.5 KiB
Bash
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
# if container log level is trace:
|
|
# print commands and their arguments as they are executed
|
|
container log level eq trace && set -x
|
|
|
|
# shellcheck disable=SC1091
|
|
source /tmp/openldap-test-lib.sh
|
|
|
|
URI="ldap://${TEST_NODES}:3890"
|
|
|
|
eventually has_entry "${URI}" "${TEST_SUFFIX}"
|
|
expect_rc 0 bind_search "${URI}" "${CONFIG_ADMIN_DN}" -b cn=config -s base \
|
|
olcWriteTimeout olcConnMaxPending olcConnMaxPendingAuth \
|
|
olcSockbufMaxIncoming olcSockbufMaxIncomingAuth
|
|
|
|
if [ "${TEST_LIMITS_MODE}" = default ]; then
|
|
expect_output '^olcWriteTimeout: 0$'
|
|
expect_output '^olcConnMaxPending: 100$'
|
|
expect_output '^olcConnMaxPendingAuth: 1000$'
|
|
expect_output '^olcSockbufMaxIncoming: 262143$'
|
|
expect_output '^olcSockbufMaxIncomingAuth: 4194303$'
|
|
else
|
|
expect_output '^olcWriteTimeout: 5$'
|
|
expect_output '^olcConnMaxPending: 10$'
|
|
expect_output '^olcConnMaxPendingAuth: 20$'
|
|
expect_output '^olcSockbufMaxIncoming: 1024$'
|
|
expect_output '^olcSockbufMaxIncomingAuth: 2048$'
|
|
fi
|
|
ok "global limits (${TEST_LIMITS_MODE}) are loaded in cn=config"
|
|
|
|
# These filters match the root DSE while making each incoming request large enough
|
|
# to distinguish the anonymous and authenticated message size limits.
|
|
MEDIUM=$(printf '%1400s' '' | tr ' ' x)
|
|
LARGE=$(printf '%2800s' '' | tr ' ' x)
|
|
MEDIUM_FILTER="(|(objectClass=*)(description=${MEDIUM}))"
|
|
LARGE_FILTER="(|(objectClass=*)(description=${LARGE}))"
|
|
|
|
if [ "${TEST_LIMITS_MODE}" = default ]; then
|
|
expect_rc 0 ldapsearch -LLL -x -H "${URI}" -b '' -s base "${LARGE_FILTER}" namingContexts
|
|
expect_output '^namingContexts:'
|
|
expect_rc 0 bind_search "${URI}" "${ADMIN_DN}" -b '' -s base "${LARGE_FILTER}" namingContexts
|
|
expect_output '^namingContexts:'
|
|
ok 'native message size defaults allow ordinary LDAP requests'
|
|
exit 0
|
|
fi
|
|
|
|
expect_rc 0 ldapsearch -LLL -x -H "${URI}" -b '' -s base '(objectClass=*)' namingContexts
|
|
expect_output '^namingContexts:'
|
|
expect_fail ldapsearch -LLL -x -H "${URI}" -b '' -s base "${MEDIUM_FILTER}" namingContexts
|
|
expect_output "Can't contact LDAP server"
|
|
expect_rc 0 bind_search "${URI}" "${ADMIN_DN}" -b '' -s base "${MEDIUM_FILTER}" namingContexts
|
|
expect_output '^namingContexts:'
|
|
expect_fail bind_search "${URI}" "${ADMIN_DN}" -b '' -s base "${LARGE_FILTER}" namingContexts
|
|
expect_output "Can't contact LDAP server"
|
|
expect_rc 0 bind_search "${URI}" "${ADMIN_DN}" -b "${TEST_SUFFIX}" -s base dn
|
|
expect_output '^dn:'
|
|
ok 'oversized messages close the offending connection and preserve normal access'
|