我被困在将对象类定义从 OpenDS 迁移到 Active Directory 中。我已经成功迁移了一些定义(并且可以使用我的 Java 应用程序读取/写入 AD) - 但现在我被卡住了。
在我的 OpenDS 架构描述中,我有这样的内容:
objectClasses: ( 1.3.6.1.4.1.99.2
NAME 'myNewClass'
SUP top STRUCTURAL
MUST ( myAttribute1 $ myAttribute2 $ myAttribute3 )
MAY someOtherAttribute
)
我将其翻译为 AD 架构语法,如下所示:
# Class: myNewClass
dn: cn=myNewClass,cn=Schema,cn=Configuration,dc=X
changetype: add
objectClass: classSchema
governsID: 1.3.6.1.4.1.99.2
ldapDisplayName: myNewClass
adminDisplayName: myNewClass
objectClassCategory: 0
systemOnly: FALSE
# subclassOf: top
subclassOf: 2.5.6.0
# rdnAttId: myAttribute1
rdnAttId: 1.3.6.1.4.1.99.1
# mustContain: myAttribute2
mustContain: 1.3.6.1.4.1.99.2
# mustContain: myAttribute3
mustContain: 1.3.6.1.4.1.99.3
# mayContain: someOtherAttribute
mayContain: 1.3.6.1.4.1.99.4
# possSuperiors: organizationalUnit
possSuperiors: 2.5.6.5
# defaultObjectCategory: myNewClass
defaultObjectCategory: cn=myNewClass,cn=Schema,cn=Configuration,dc=X
但是当我尝试编写 myNewClass 类的对象时,我得到了这个异常:
javax.naming.InvalidNameException: "myAttribute1=Read+myAttribute2=Allow+myAttribute3=cn\=someResource": [LDAP: error code 34 - 0000208F: LdapErr: DSID-0C090715, comment: Error processing name, data 0, v1db1 ];
我认为问题是 rdnAttId,这在 AD 中似乎是必不可少的(而不是在 OpenDS 中)。我只能将它设置为单个值(所以我选择了 myAttribute1),但它不应该更像 myAttribute1 AND myAttribute2 AND myAttribute3 吗?
做什么?