2010-09-30 18 views
2

嘿傢伙, 我必須滿足用戶之間的第二種區分。我只是貼出來JNDIRealm爲JNDIRealm創建userPattern

DN給出的例子:UID = jjones,OU =人,DC = myCompany中,DC = com的

<Realm className="org.apache.catalina.realm.JNDIRealm" debug="99" 
    connectionName="cn=Manager,dc=mycompany,dc=com" 
connectionPassword="secret" 
    connectionURL="ldap://localhost:389" 
     userPassword="userPassword" 
     userPattern="uid={0},ou=people,dc=mycompany,dc=com" 
      roleBase="ou=groups,dc=mycompany,dc=com" 
      roleName="cn" 
     roleSearch="(uniqueMember={0})" 
/> 

改變

DN:UID = jjones,OU =人,DC = myCompany中,DC = com的

DN:UID = jjones,OU =機器人,DC = myCompany中,DC = com的

<Realm className="org.apache.catalina.realm.JNDIRealm" debug="99" 
    connectionName="cn=Manager,dc=mycompany,dc=com" 
connectionPassword="secret" 
    connectionURL="ldap://localhost:389" 
     userPassword="userPassword" 
     userPattern="uid={0},ou={0},dc=mycompany,dc=com" 
      roleBase="ou=groups,dc=mycompany,dc=com" 
      roleName="cn" 
     roleSearch="(uniqueMember={0})" 
/> 

此調整是否符合我的要求以啓用第二個區分? 我不知道「{0}」是否有效,或者是否必須將其更改爲「{1}」。

當我定義了「userPattern」屬性時,是否真的需要「userBase」屬性?

回答

3

的解決方案是一個userPatternArray

如下:

有時是必要的用戶 來自不同組織單位 訪問代碼合作者。如果 您使用直接綁定 配置中使用userPattern 屬性,可以改變 配置以使用userPatternArray 代替其中的值是用戶模式的 冒號分隔的列表。 例如,如果在 OU = FOO,DC = myCompany中,DC = com,然後OU =酒吧,DC = myCompany中,通過自己的uid屬性標識的DC = COM ,你 可以設置用戶theuserPatternArray屬性 爲如下:如下:

userPatternArray="(uid={0},ou=foo,dc=mycompany,dc=com):(uid={0},ou=bar,dc=mycompany,dc=com)as follows: 
1

相反的是我從手動和上述扣除,我的Tomcat 6.0.18發現,它的參數userPattern,不userPatternArray需要用冒號設置分隔列表。

1

試試這個:

<Realm 
    className="org.apache.catalina.realm.JNDIRealm" debug="99" 
    connectionName="cn=administrator,ou=users,dc=Filenet,dc=com" 
    connectionPassword="Password" 
    connectionURL="ldap://localhost:389" 
    userPattern="(cn={0},ou=sales,dc=Filenet,dc=com)(cn={0},ou=users,dc=Filenet,dc=com)" 
    roleBase="ou=groups,dc=Filenet,dc=com" 
    roleName="cn" 
    roleSearch="(member={0})"/>