我们公司正在使用 springboot 和 spring-data-ldap 构建工厂仓库管理系统。 旧系统仅支持 3 层这样结构的仓库:
warehouse (包含) storagearea ( s )(包含) storagelocation ( s )
这种结构对于客户而言过于严格,因为他们的仓库是不一样的。 我们正在考虑构建一个系统,用户可以配置自己的仓库层,而无需在 java 代码中对结构进行硬编码。
现在我把 warehouse,storagearea 和 storagelocation 的 mysql 表结构迁移到 LDAP 中。 但需要在 ApacheDS 中定义新的 objectClasses,因为 OpenLdap 中没有这些属性。
创建新属性类型需要 OID,这是必须通过从某个网站在线申请获取的唯一编号。
有没有办法获得 OID 或随机创建一个? ldap 到底能不能构建这样随意配置层级的系统?
1
hearfish 2019-04-19 03:57:23 +08:00
任意层级用 mysql 为啥不能做?
|
2
wc951 2019-04-19 06:53:58 +08:00 via Android
oid 可以自己随便写啊,只要 ldap 服务器内唯一就行,你这个又不是对外的系统
|
3
yianbin 2019-04-19 08:20:40 +08:00
|
4
victorwu34 OP @hearfish 应该是考虑 ldap 本身就支持树,以后还可以用来单点登录
|
5
victorwu34 OP @yianbin 这个地址就只是申请公司的 oid 吗,数据的名字的 oid 怎么申请呢
|
6
victorwu34 OP @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 |
7
reus 2019-04-19 09:45:57 +08:00
有点大炮打蚊子的感觉,就一个树状结构,自己实现不就行了。类似文件系统,目录和文件都用 inode 表示,用同一个表就能存。
|
8
victorwu34 OP @reus 但是已经定下来了
|
9
jimrok 2019-04-19 12:46:51 +08:00
LDAP 的 class 结构是用来做标准化数据的管理的,例如通讯录,产品规格信息的。你这种非标的东西根本不适合用 ldap。除非你是想利用 LDAP 的目录复制功能,分布式的复制目录的信息。
|
10
wc951 2019-04-19 19:14:56 +08:00 via Android
ldap 当然可以任意结构任意层级,dn 都是自己拼的,节点想挂哪层挂哪层,oid 只要不重复你写成 test-oid 这样的都行
|