## create emqx.io dn:dc=emqx,dc=io objectclass: top objectclass: dcobject objectclass: organization dc:emqx o:emqx,Inc. # create testdevice.emqx.io dn:ou=testdevice,dc=emqx,dc=io 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 objectClass: simpleSecurityObject objectClass: account userPassword:: e1NIQX1XNnBoNU1tNVB6OEdnaVVMYlBnekczN21qOWc9 uid: admin ## create user=mqttuser0001, # password=mqttuser0001, # passhash={SHA}mlb3fat40MKBTXUVZwCKmL73R/0= # base64passhash=e1NIQX1tbGIzZmF0NDBNS0JUWFVWWndDS21MNzNSLzA9 dn:uid=mqttuser0001,ou=testdevice,dc=emqx,dc=io objectClass: top objectClass: mqttUser objectClass: mqttDevice objectClass: mqttSecurity uid: mqttuser0001 isEnabled: TRUE mqttAccountName: user1 mqttPublishTopic: mqttuser0001/pub/1 mqttPublishTopic: mqttuser0001/pub/+ mqttPublishTopic: mqttuser0001/pub/# mqttSubscriptionTopic: mqttuser0001/sub/1 mqttSubscriptionTopic: mqttuser0001/sub/+ mqttSubscriptionTopic: mqttuser0001/sub/# mqttPubSubTopic: mqttuser0001/pubsub/1 mqttPubSubTopic: mqttuser0001/pubsub/+ mqttPubSubTopic: mqttuser0001/pubsub/# userPassword:: e1NIQX1tbGIzZmF0NDBNS0JUWFVWWndDS21MNzNSLzA9 ## create user=mqttuser0002 # password=mqttuser0002, # passhash={SSHA}n9XdtoG4Q/TQ3TQF4Y+khJbMBH4qXj4M # base64passhash=e1NTSEF9bjlYZHRvRzRRL1RRM1RRRjRZK2toSmJNQkg0cVhqNE0= dn:uid=mqttuser0002,ou=testdevice,dc=emqx,dc=io objectClass: top objectClass: mqttUser objectClass: mqttDevice objectClass: mqttSecurity uid: mqttuser0002 isEnabled: TRUE mqttAccountName: user2 mqttPublishTopic: mqttuser0002/pub/1 mqttPublishTopic: mqttuser0002/pub/+ mqttPublishTopic: mqttuser0002/pub/# mqttSubscriptionTopic: mqttuser0002/sub/1 mqttSubscriptionTopic: mqttuser0002/sub/+ mqttSubscriptionTopic: mqttuser0002/sub/# mqttPubSubTopic: mqttuser0002/pubsub/1 mqttPubSubTopic: mqttuser0002/pubsub/+ mqttPubSubTopic: mqttuser0002/pubsub/# userPassword:: e1NTSEF9bjlYZHRvRzRRL1RRM1RRRjRZK2toSmJNQkg0cVhqNE0= ## create user mqttuser0003 # password=mqttuser0003, # passhash={MD5}ybsPGoaK3nDyiQvveiCOIw== # base64passhash=e01ENX15YnNQR29hSzNuRHlpUXZ2ZWlDT0l3PT0= dn:uid=mqttuser0003,ou=testdevice,dc=emqx,dc=io objectClass: top objectClass: mqttUser objectClass: mqttDevice objectClass: mqttSecurity uid: mqttuser0003 isEnabled: TRUE mqttPublishTopic: mqttuser0003/pub/1 mqttPublishTopic: mqttuser0003/pub/+ mqttPublishTopic: mqttuser0003/pub/# mqttSubscriptionTopic: mqttuser0003/sub/1 mqttSubscriptionTopic: mqttuser0003/sub/+ mqttSubscriptionTopic: mqttuser0003/sub/# mqttPubSubTopic: mqttuser0003/pubsub/1 mqttPubSubTopic: mqttuser0003/pubsub/+ mqttPubSubTopic: mqttuser0003/pubsub/# userPassword:: e01ENX15YnNQR29hSzNuRHlpUXZ2ZWlDT0l3PT0= ## create user mqttuser0004 # password=mqttuser0004, # passhash={MD5}2Br6pPDSEDIEvUlu9+s+MA== # base64passhash=e01ENX0yQnI2cFBEU0VESUV2VWx1OStzK01BPT0= dn:uid=mqttuser0004,ou=testdevice,dc=emqx,dc=io objectClass: top objectClass: mqttUser objectClass: mqttDevice objectClass: mqttSecurity uid: mqttuser0004 isEnabled: TRUE mqttPublishTopic: mqttuser0004/pub/1 mqttPublishTopic: mqttuser0004/pub/+ mqttPublishTopic: mqttuser0004/pub/# mqttSubscriptionTopic: mqttuser0004/sub/1 mqttSubscriptionTopic: mqttuser0004/sub/+ mqttSubscriptionTopic: mqttuser0004/sub/# mqttPubSubTopic: mqttuser0004/pubsub/1 mqttPubSubTopic: mqttuser0004/pubsub/+ mqttPubSubTopic: mqttuser0004/pubsub/# userPassword: {MD5}2Br6pPDSEDIEvUlu9+s+MA== ## create user mqttuser0005 # password=mqttuser0005, # passhash={SHA}jKnxeEDGR14kE8AR7yuVFOelhz4= # base64passhash=e1NIQX1qS254ZUVER1IxNGtFOEFSN3l1VkZPZWxoejQ9 objectClass: top dn:uid=mqttuser0005,ou=testdevice,dc=emqx,dc=io objectClass: mqttUser objectClass: mqttDevice objectClass: mqttSecurity uid: mqttuser0005 isEnabled: TRUE mqttPublishTopic: mqttuser0005/pub/1 mqttPublishTopic: mqttuser0005/pub/+ mqttPublishTopic: mqttuser0005/pub/# mqttSubscriptionTopic: mqttuser0005/sub/1 mqttSubscriptionTopic: mqttuser0005/sub/+ mqttSubscriptionTopic: mqttuser0005/sub/# mqttPubSubTopic: mqttuser0005/pubsub/1 mqttPubSubTopic: mqttuser0005/pubsub/+ mqttPubSubTopic: mqttuser0005/pubsub/# userPassword: {SHA}jKnxeEDGR14kE8AR7yuVFOelhz4= objectClass: top dn:uid=mqttuser0006,ou=testdevice,dc=emqx,dc=io objectClass: mqttUser objectClass: mqttDevice objectClass: mqttSecurity uid: mqttuser0006 isEnabled: FALSE userPassword: {SHA}AlNm2FUO8G5BK5pCggfrPauRqN0= objectClass: top dn:uid=mqttuser0007,ou=testdevice,dc=emqx,dc=io objectClass: mqttUser objectClass: mqttDevice objectClass: mqttSecurity uid: mqttuser0007 isSuperuser: TRUE userPassword: {SHA}axpQGbl00j3jvOG058y313ocnBk= objectClass: top dn:uid=mqttuser0008 (test),ou=testdevice,dc=emqx,dc=io objectClass: mqttUser objectClass: mqttDevice objectClass: mqttSecurity uid: mqttuser0008 (test) isSuperuser: TRUE userPassword: {SHA}FCzJLOp66OwsZ9DQzXSxdTd9c0U= objectClass: top dn:uid=mqttuser0009 \\test\\,ou=testdevice,dc=emqx,dc=io objectClass: mqttUser objectClass: mqttDevice objectClass: mqttSecurity uid: mqttuser0009 \\test\\ isSuperuser: TRUE userPassword: {SHA}awxXARLqWYx+xy0677D/TLjlyHA= ## 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=