为JNDIRealm创建userPattern

时间:2010-09-30 13:04:24

标签: tomcat jndi

嘿伙计们, 我必须在用户之间进行第二次区分。我刚刚粘贴了JNDIRealm

给出的示例

dn:uid = jjones,ou = people,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 = people,dc = mycompany,dc = com

dn:uid = jjones, ou = robots ,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 个答案:

答案 0 :(得分:3)

解决方案是userPatternArray

如下:

  

有时对用户来说是必要的   从不同的组织单位到   可以访问Code Collaborator。如果   你正在使用直接绑定   使用userPattern进行配置   属性,你可以改变   配置使用userPatternArray   相反,值是a   以冒号分隔的用户模式列表。   例如,如果有用户    ou = foo,dc = mycompany,dc = com和ou = bar,dc = mycompany,dc = com   通过他们的uid属性识别,你   可以设置userPatternArray属性   如下:如下:

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

答案 1 :(得分:1)

与我从手册和上面的内容中扣除的相反,我在Tomcat 6.0.18中发现它是参数userPattern,而不是userPatternArray,需要使用以冒号分隔的列表进行设置。

答案 2 :(得分: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})"/>