You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.8 KiB
44 lines
1.8 KiB
#!/bin/bash |
|
set -e |
|
|
|
echo "=== Container status ===" |
|
docker ps --filter name=databaselist --format '{{.Names}} {{.Status}}' |
|
|
|
echo "=== LDAP extension ===" |
|
docker exec databaselist php -m | grep -i ldap |
|
|
|
echo "=== Route ===" |
|
docker exec databaselist php artisan route:list 2>&1 | grep ldap-users |
|
|
|
echo "=== Health ===" |
|
curl -sf -o /dev/null -w "localhost /up: %{http_code}\n" http://127.0.0.1:8091/up |
|
|
|
echo "=== HTTPS login + ldap-users ===" |
|
curl -sk -c /tmp/ct.txt https://databaselist.gisportal.id/login \ |
|
--resolve databaselist.gisportal.id:443:127.0.0.1 -o /tmp/lt.html |
|
TOKEN=$(grep -oP 'name="_token" value="\K[^"]+' /tmp/lt.html) |
|
curl -sk -b /tmp/ct.txt -c /tmp/ct.txt -X POST https://databaselist.gisportal.id/login \ |
|
--resolve databaselist.gisportal.id:443:127.0.0.1 \ |
|
-d "username=admin&password=geonet\$123&_token=${TOKEN}" -o /dev/null -w "post_login: %{http_code}\n" |
|
curl -sk -b /tmp/ct.txt https://databaselist.gisportal.id/ldap-users \ |
|
--resolve databaselist.gisportal.id:443:127.0.0.1 -o /tmp/lu.html -w "ldap_users: %{http_code}\n" |
|
grep -c 'LDAP Users' /tmp/lu.html |
|
grep -Eo 'LDAP bind failed|not configured|Unable to load LDAP|>[0-9]+ users<' /tmp/lu.html | head -5 |
|
|
|
echo "=== LDAP bind test from container ===" |
|
docker exec databaselist php -r ' |
|
$host = getenv("LDAP_HOST"); |
|
$dn = getenv("LDAP_BIND_DN"); |
|
$pw = getenv("LDAP_BIND_PASSWORD"); |
|
$base = getenv("LDAP_BASE_DN"); |
|
$c = ldap_connect("ldap://{$host}:389"); |
|
ldap_set_option($c, LDAP_OPT_PROTOCOL_VERSION, 3); |
|
ldap_set_option($c, LDAP_OPT_REFERRALS, 0); |
|
if (@ldap_bind($c, $dn, $pw)) { |
|
$r = @ldap_search($c, $base, "(&(objectCategory=person)(objectClass=user))", ["samaccountname"], 0, 3); |
|
$e = ldap_get_entries($c, $r); |
|
echo "bind: OK, sample_count=" . ($e["count"] ?? 0) . PHP_EOL; |
|
} else { |
|
echo "bind: FAIL" . PHP_EOL; |
|
} |
|
'
|
|
|