GeoNetAgent, LDAPWeb, server-audit, server-connection
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

#!/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;
}
'