From d858f8af3988700616115e2b7492dc873692c44b Mon Sep 17 00:00:00 2001 From: "Zaiming (Stone) Shi" Date: Thu, 28 Sep 2023 18:38:37 +0200 Subject: [PATCH] test: fix openldap docker runs --- .ci/docker-compose-file/openldap/slapd.conf | 3 +-- apps/emqx_ldap/test/data/emqx.io.ldif | 26 +++++++++++++++++++++ apps/emqx_ldap/test/data/emqx.schema | 19 +++++++++++---- 3 files changed, 42 insertions(+), 6 deletions(-) diff --git a/.ci/docker-compose-file/openldap/slapd.conf b/.ci/docker-compose-file/openldap/slapd.conf index d6ba20caa..984cf3b4c 100644 --- a/.ci/docker-compose-file/openldap/slapd.conf +++ b/.ci/docker-compose-file/openldap/slapd.conf @@ -1,14 +1,13 @@ include /usr/local/etc/openldap/schema/core.schema include /usr/local/etc/openldap/schema/cosine.schema include /usr/local/etc/openldap/schema/inetorgperson.schema -include /usr/local/etc/openldap/schema/ppolicy.schema include /usr/local/etc/openldap/schema/emqx.schema TLSCACertificateFile /usr/local/etc/openldap/cacert.pem TLSCertificateFile /usr/local/etc/openldap/cert.pem TLSCertificateKeyFile /usr/local/etc/openldap/key.pem -database bdb +database mdb suffix "dc=emqx,dc=io" rootdn "cn=root,dc=emqx,dc=io" rootpw {SSHA}eoF7NhNrejVYYyGHqnt+MdKNBh4r1w3W diff --git a/apps/emqx_ldap/test/data/emqx.io.ldif b/apps/emqx_ldap/test/data/emqx.io.ldif index 138651958..71a1bb3fc 100644 --- a/apps/emqx_ldap/test/data/emqx.io.ldif +++ b/apps/emqx_ldap/test/data/emqx.io.ldif @@ -13,6 +13,12 @@ objectClass: top objectclass:organizationalUnit ou:testdevice +# create dashboard.emqx.io +dn:ou=dashboard,dc=emqx,dc=io +objectClass: top +objectclass:organizationalUnit +ou:dashboard + # create user admin dn:uid=admin,ou=testdevice,dc=emqx,dc=io objectClass: top @@ -150,3 +156,23 @@ objectClass: mqttSecurity uid: mqttuser0007 isSuperuser: TRUE userPassword: {SHA}axpQGbl00j3jvOG058y313ocnBk= + +## Try to test with base DN 'ou=dashboard,dc=emqx,dc=io' +## with a filter ugroup=group1 +## this should return 2 users in the query and fail the test + +## echo -n "viewer1" | sha1sum | cut -d' ' -f1 | xxd -r -p | base64 +dn:uid=viewer1,ou=dashboard,dc=emqx,dc=io +objectClass: top +objectClass: dashboardUser +uid: viewer1 +ugroup: group1 +userPassword: {SHA}I/LgVpQ6joiHifK7pZEQ1+0AUlg= + +## echo -n "viewer2" | sha1sum | cut -d' ' -f1 | xxd -r -p | base64 +dn:uid=viewer2,ou=dashboard,dc=emqx,dc=io +objectClass: top +objectClass: dashboardUser +uid: viewer2 +ugroup: group1 +userPassword: {SHA}SR0qZpf8pYKKAbn6ILFvX91JuQg= diff --git a/apps/emqx_ldap/test/data/emqx.schema b/apps/emqx_ldap/test/data/emqx.schema index d08548272..4ecc37bb7 100644 --- a/apps/emqx_ldap/test/data/emqx.schema +++ b/apps/emqx_ldap/test/data/emqx.schema @@ -35,10 +35,11 @@ attributetype ( 1.3.6.1.4.1.11.2.53.2.2.3.1.2.3.4.4 NAME ( 'mqttAccountName' 'ma SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 USAGE userApplications ) - -objectclass ( 1.3.6.1.4.1.11.2.53.2.2.3.1.2.3.4 NAME 'mqttUser' - AUXILIARY - MAY ( mqttPublishTopic $ mqttSubscriptionTopic $ mqttPubSubTopic $ mqttAccountName $ isSuperuser) ) +attributetype ( 1.3.6.1.4.1.11.2.53.2.2.3.1.2.3.5.1 NAME 'ugroup' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 + USAGE userApplications ) objectclass ( 1.3.6.1.4.1.11.2.53.2.2.3.1.2.3.2 NAME 'mqttDevice' SUP top @@ -50,3 +51,13 @@ objectclass ( 1.3.6.1.4.1.11.2.53.2.2.3.1.2.3.3 NAME 'mqttSecurity' SUP top AUXILIARY MUST ( userPassword ) ) + +objectclass ( 1.3.6.1.4.1.11.2.53.2.2.3.1.2.3.4 NAME 'mqttUser' + AUXILIARY + MAY ( mqttPublishTopic $ mqttSubscriptionTopic $ mqttPubSubTopic $ mqttAccountName $ isSuperuser ) ) + +objectclass (1.3.6.1.4.1.11.2.53.2.2.3.1.2.3.5 NAME 'dashboardUser' + SUP top + STRUCTURAL + MUST ( uid $ userPassword ) + MAY ( ugroup ))