| ID | fda1a4a3-d016-4705-9399-493c94a84957 |
|---|---|
| DeertopiaVisibility | public |
LDAP
Exploring
ldapsearch from package openldap and customised builds of Curl are both convenient command-line LDAP clientsRenderer error!
java.lang.AssertionError: Assert failed: Not an org-node!
(element/org-element? p1__7209#)
at net.deertopia.doerg.render$fn__7210$fn__7211.invoke (render.clj:22)
clojure.lang.MultiFn.invoke (MultiFn.java:229)
net.deertopia.doerg.render$org_element_recursive$fn__7244.invoke (render.clj:55)
com.rpl.specter.impl$terminal_STAR_.invokeStatic (impl.cljc:430)
com.rpl.specter.impl$terminal_STAR_.invoke (impl.cljc:428)
com.rpl.specter.impl$compiled_transform_STAR_$fn__4945.invoke (impl.cljc:438)
com.rpl.specter.impl$reify__4882.transform_STAR_ (impl.cljc:184)
com.rpl.specter.navs$if_transform.invokeStatic (navs.cljc:431)
com.rpl.specter.navs$if_transform.invoke (navs.cljc:430)
com.rpl.specter$fn__6691$fn$reify__6693.transform_STAR_ (specter.cljc:1404)
com.rpl.specter.impl$combine_two_navs$reify__4884$fn__4890.invoke (impl.cljc:195)
com.rpl.specter.impl$reify__4882.transform_STAR_ (impl.cljc:184)
com.rpl.specter.navs$if_transform.invokeStatic (navs.cljc:431)
com.rpl.specter.navs$if_transform.invoke (navs.cljc:430)
com.rpl.specter$fn__6691$fn$reify__6693.transform_STAR_ (specter.cljc:1404)
com.rpl.specter.impl$cell_nav$reify__5161.transform_STAR_ (impl.cljc:539)
com.rpl.specter.impl$combine_two_navs$reify__4884$fn__4890.invoke (impl.cljc:195)
com.rpl.specter$reify__6179$next_fn__6182.invoke (specter.cljc:717)
clojure.core$map$fn__5950$fn__5951.invoke (core.clj:2759)
clojure.lang.TransformerIterator.step (TransformerIterator.java:79)
clojure.lang.TransformerIterator.hasNext (TransformerIterator.java:97)
clojure.lang.RT$4.invoke (RT.java:542)
clojure.lang.LazySeq.force (LazySeq.java:50)
clojure.lang.LazySeq.realize (LazySeq.java:89)
clojure.lang.LazySeq.seq (LazySeq.java:106)
clojure.lang.RT.seq (RT.java:555)
clojure.core$seq__5486.invokeStatic (core.clj:139)
clojure.core$dorun.invokeStatic (core.clj:3141)
clojure.core$doall.invokeStatic (core.clj:3156)
clojure.core$doall.invoke (core.clj:3156)
com.rpl.specter.navs$all_transform_list.invokeStatic (navs.cljc:62)
com.rpl.specter.navs$all_transform_list.invoke (navs.cljc:61)
com.rpl.specter.navs$fn__5608.invokeStatic (navs.cljc:183)
com.rpl.specter.navs/fn (navs.cljc:71)
com.rpl.specter.navs$fn__5583$G__5578__5590.invoke (navs.cljc:40)
com.rpl.specter$reify__6179.transform_STAR_ (specter.cljc:725)
com.rpl.specter.impl$combine_two_navs$reify__4884$fn__4890.invoke (impl.cljc:195)
com.rpl.specter.navs$do_keypath_transform.invokeStatic (navs.cljc:690)
com.rpl.specter.navs$do_keypath_transform.invoke (navs.cljc:689)
com.rpl.specter.navs$fn$reify__5954.transform_STAR_ (navs.cljc:705)
com.rpl.specter.impl$combine_two_navs$reify__4884.transform_STAR_ (impl.cljc:193)
com.rpl.specter.impl$combine_two_navs$reify__4884.transform_STAR_ (impl.cljc:193)
com.rpl.specter$fn__6718$fn$reify__6720.transform_STAR_ (specter.cljc:1465)
com.rpl.specter.navs$if_transform.invokeStatic (navs.cljc:431)
com.rpl.specter.navs$if_transform.invoke (navs.cljc:430)
com.rpl.specter$fn__6691$fn$reify__6693.transform_STAR_ (specter.cljc:1404)
com.rpl.specter.impl$cell_nav$reify__5161.transform_STAR_ (impl.cljc:539)
com.rpl.specter.impl$combine_two_navs$reify__4884$fn__4890.invoke (impl.cljc:195)
com.rpl.specter$reify__6179$next_fn__6182.invoke (specter.cljc:717)
clojure.core$map$fn__5950$fn__5951.invoke (core.clj:2759)
clojure.lang.PersistentVector.reduce (PersistentVector.java:418)
clojure.core$transduce.invokeStatic (core.clj:7025)
clojure.core$into.invokeStatic (core.clj:7042)
clojure.core$into.invoke (core.clj:7029)
com.rpl.specter.navs$fn__5625.invokeStatic (navs.cljc:94)
com.rpl.specter.navs/fn (navs.cljc:71)
com.rpl.specter.navs$fn__5583$G__5578__5590.invoke (navs.cljc:40)
com.rpl.specter$reify__6179.transform_STAR_ (specter.cljc:725)
com.rpl.specter.impl$combine_two_navs$reify__4884$fn__4890.invoke (impl.cljc:195)
com.rpl.specter.navs$do_keypath_transform.invokeStatic (navs.cljc:690)
com.rpl.specter.navs$do_keypath_transform.invoke (navs.cljc:689)
com.rpl.specter.navs$fn$reify__5954.transform_STAR_ (navs.cljc:705)
com.rpl.specter.impl$combine_two_navs$reify__4884.transform_STAR_ (impl.cljc:193)
com.rpl.specter.impl$combine_two_navs$reify__4884.transform_STAR_ (impl.cljc:193)
com.rpl.specter$fn__6718$fn$reify__6720.transform_STAR_ (specter.cljc:1465)
com.rpl.specter.navs$if_transform.invokeStatic (navs.cljc:431)
com.rpl.specter.navs$if_transform.invoke (navs.cljc:430)
com.rpl.specter$fn__6691$fn$reify__6693.transform_STAR_ (specter.cljc:1404)
com.rpl.specter.impl$cell_nav$reify__5161.transform_STAR_ (impl.cljc:539)
com.rpl.specter.impl$combine_two_navs$reify__4884$fn__4890.invoke (impl.cljc:195)
com.rpl.specter$reify__6179$next_fn__6182.invoke (specter.cljc:717)
clojure.core$map$fn__5950$fn__5951.invoke (core.clj:2759)
clojure.lang.PersistentVector.reduce (PersistentVector.java:418)
clojure.core$transduce.invokeStatic (core.clj:7025)
clojure.core$into.invokeStatic (core.clj:7042)
clojure.core$into.invoke (core.clj:7029)
com.rpl.specter.navs$fn__5625.invokeStatic (navs.cljc:94)
com.rpl.specter.navs/fn (navs.cljc:71)
com.rpl.specter.navs$fn__5583$G__5578__5590.invoke (navs.cljc:40)
com.rpl.specter$reify__6179.transform_STAR_ (specter.cljc:725)
com.rpl.specter.impl$combine_two_navs$reify__4884$fn__4890.invoke (impl.cljc:195)
com.rpl.specter.navs$do_keypath_transform.invokeStatic (navs.cljc:690)
com.rpl.specter.navs$do_keypath_transform.invoke (navs.cljc:689)
com.rpl.specter.navs$fn$reify__5954.transform_STAR_ (navs.cljc:705)
com.rpl.specter.impl$combine_two_navs$reify__4884.transform_STAR_ (impl.cljc:193)
com.rpl.specter.impl$combine_two_navs$reify__4884.transform_STAR_ (impl.cljc:193)
com.rpl.specter$fn__6718$fn$reify__6720.transform_STAR_ (specter.cljc:1465)
com.rpl.specter.navs$if_transform.invokeStatic (navs.cljc:431)
com.rpl.specter.navs$if_transform.invoke (navs.cljc:430)
com.rpl.specter$fn__6691$fn$reify__6693.transform_STAR_ (specter.cljc:1404)
com.rpl.specter.impl$cell_nav$reify__5161.transform_STAR_ (impl.cljc:539)
com.rpl.specter.impl$combine_two_navs$reify__4884.transform_STAR_ (impl.cljc:193)
com.rpl.specter.impl$compiled_transform_STAR_.invokeStatic (impl.cljc:436)
com.rpl.specter.impl$compiled_transform_STAR_.invoke (impl.cljc:435)
net.deertopia.doerg.render$org_element_recursive.invokeStatic (render.clj:52)
net.deertopia.doerg.render$org_element_recursive.invoke (render.clj:48)
net.deertopia.doerg.render$org_document.invokeStatic (render.clj:69)
net.deertopia.doerg.render$org_document.doInvoke (render.clj:64)
clojure.lang.RestFn.invoke (RestFn.java:426)
net.deertopia.doerg.render$to_html$fn__7261.invoke (render.clj:90)
net.deertopia.doerg.render$to_html.invokeStatic (render.clj:90)
net.deertopia.doerg.render$to_html.doInvoke (render.clj:86)
clojure.lang.RestFn.invoke (RestFn.java:562)
net.deertopia.doerg.server$node_by_slug$fn__17488.invoke (server.clj:112)
net.deertopia.doerg.cached_file$cached_file.invokeStatic (cached_file.clj:21)
net.deertopia.doerg.cached_file$cached_file.doInvoke (cached_file.clj:16)
clojure.lang.RestFn.invoke (RestFn.java:515)
net.deertopia.doerg.server$node_by_slug.invokeStatic (server.clj:109)
net.deertopia.doerg.server$node_by_slug.invoke (server.clj:105)
clojure.lang.Var.invoke (Var.java:386)
reitit.ring.middleware.exception$wrap$fn__15192$fn__15193.invoke (exception.clj:52)
reitit.ring$ring_handler$fn__15148.invoke (ring.cljc:389)
clojure.lang.AFn.applyToHelper (AFn.java:154)
clojure.lang.AFn.applyTo (AFn.java:144)
clojure.lang.AFunction$1.doInvoke (AFunction.java:33)
clojure.lang.RestFn.applyTo (RestFn.java:140)
clojure.lang.Var.applyTo (Var.java:707)
clojure.core$apply.invokeStatic (core.clj:667)
clojure.core$with_bindings_STAR_.invokeStatic (core.clj:1990)
clojure.core$with_bindings_STAR_.doInvoke (core.clj:1990)
clojure.lang.RestFn.applyTo (RestFn.java:145)
clojure.core$apply.invokeStatic (core.clj:671)
clojure.core$bound_fn_STAR_$fn__5837.doInvoke (core.clj:2020)
clojure.lang.RestFn.invoke (RestFn.java:411)
org.httpkit.server$wrap_ring_websocket$ring_handler_STAR___11977.invoke (server.clj:437)
org.httpkit.server.HttpHandler.runSync (RingHandler.java:144)
org.httpkit.server.HttpHandler.run (RingHandler.java:138)
java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:572)
java.util.concurrent.FutureTask.run (FutureTask.java:317)
java.lang.VirtualThread.run (VirtualThread.java:329)
ldap-haskell
Here's a snippet using ldap-haskell to lookup all UIDs in the Deertopia LDAP directory:
module Main where
import LDAP
baseDN = "ou=people,dc=identify,dc=deertopia,dc=net"
main = do
h <- ldapInitialize "ldap://127.0.0.1:3890"
putStrLn "connected (i think)"
ldapSimpleBind h ("uid=jellyfin," <> baseDN) "i-am-jellyfin"
putStrLn "did bind"
r <- ldapSearch h
(Just baseDN)
LdapScopeSubtree
Nothing
(LDAPAttrList ["uid"])
False
print r
RDNs (relative distinguished names)
In LDAP, a DN (distinguished name) is comprised of several RDNs (relative distinguished names). A DN uniquely identifies entries in the directory tree. A typical LDAP DN might look like:
uid=jsmith,ou=Engineering,dc=example,dc=com
This structure helps organize and locate specific entries within the LDAP directory hierarchy.
These are all parts of the X.500 Directory Specification, which defines nodes in a LDAP directory.
uid (user ID)
A unique identifier for user accounts in LDAP directories.
Typically represents the username or login name of a user.
Example:
uid=jsmith.
ou (organizational unit)
Represents a subdivision or department within an organization.
Used to create logical groupings of related objects.
Can be nested to create hierarchical structures.
Example:
ou=Engineering,ou=Departments.
dc (domain component)
Represents parts of a domain name in reverse order.
Used to specify the DNS domain structure.
Multiple dc attributes form the complete domain path.
Example: For example.com, it would be:
dc=example,dc=com.