如何用 Ldap 做任意结构的系统?

2019-04-19 00:42:53 +08:00
 victorwu34

我们公司正在使用 springboot 和 spring-data-ldap 构建工厂仓库管理系统。 旧系统仅支持 3 层这样结构的仓库:

warehouse (包含) storagearea ( s )(包含) storagelocation ( s )

这种结构对于客户而言过于严格,因为他们的仓库是不一样的。 我们正在考虑构建一个系统,用户可以配置自己的仓库层,而无需在 java 代码中对结构进行硬编码。

现在我把 warehouse,storagearea 和 storagelocation 的 mysql 表结构迁移到 LDAP 中。 但需要在 ApacheDS 中定义新的 objectClasses,因为 OpenLdap 中没有这些属性。

创建新属性类型需要 OID,这是必须通过从某个网站在线申请获取的唯一编号。

有没有办法获得 OID 或随机创建一个? ldap 到底能不能构建这样随意配置层级的系统?

2916 次点击
所在节点    Java
10 条回复
hearfish
2019-04-19 03:57:23 +08:00
任意层级用 mysql 为啥不能做?
wc951
2019-04-19 06:53:58 +08:00
oid 可以自己随便写啊,只要 ldap 服务器内唯一就行,你这个又不是对外的系统
yianbin
2019-04-19 08:20:40 +08:00
victorwu34
2019-04-19 09:37:22 +08:00
@hearfish 应该是考虑 ldap 本身就支持树,以后还可以用来单点登录
victorwu34
2019-04-19 09:38:20 +08:00
@yianbin 这个地址就只是申请公司的 oid 吗,数据的名字的 oid 怎么申请呢
victorwu34
2019-04-19 09:41:07 +08:00
@wc951
查到有这些 OID 的规范,一般应该用哪个呢
2.5.6 # OID of x.500 objectclasses
2.5.6.2 # OID of country objectclass
1.3.6.1.4.1.1446 # Critical Angle - used in many LDAP definitions
1.3.6.1.4.1.311 # microsoft's enterprise OID
1.2.840.113556 # microsoft's us OID
2.16.840.1.113730 # Netscape - used in many LDAP definitions
reus
2019-04-19 09:45:57 +08:00
有点大炮打蚊子的感觉,就一个树状结构,自己实现不就行了。类似文件系统,目录和文件都用 inode 表示,用同一个表就能存。
victorwu34
2019-04-19 11:17:47 +08:00
@reus 但是已经定下来了
jimrok
2019-04-19 12:46:51 +08:00
LDAP 的 class 结构是用来做标准化数据的管理的,例如通讯录,产品规格信息的。你这种非标的东西根本不适合用 ldap。除非你是想利用 LDAP 的目录复制功能,分布式的复制目录的信息。
wc951
2019-04-19 19:14:56 +08:00
ldap 当然可以任意结构任意层级,dn 都是自己拼的,节点想挂哪层挂哪层,oid 只要不重复你写成 test-oid 这样的都行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/556626

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX