2013-11-14 31 views
1

我想修改主域用戶存儲(基於LDAP),但我無法成功。如何更改WSO2 IS的主LDAP域4.5.0

user-mgt.xml當前域是dc=wso2,dc=org,我想更改爲dc=foobar,dc=com

我修改user-mgt.xml是:

... 
    <UserStoreManager class="org.wso2.carbon.user.core.ldap.ReadWriteLDAPUserStoreManager"> 
      <Property name="TenantManager">org.wso2.carbon.user.core.tenant.CommonHybridLDAPTenantManager</Property> 

      <Property name="defaultRealmName">FOOBAR.COM</Property> 

      <Property name="kdcEnabled">false</Property> 
      <Property name="Disabled">false</Property>         
      <Property name="ConnectionURL">ldap://localhost:${Ports.EmbeddedLDAP.LDAPServerPort}</Property> 
      <Property name="ConnectionName">uid=admin,ou=system</Property> 
      <Property name="ConnectionPassword">admin</Property> 
      <Property name="passwordHashMethod">SHA</Property> 
      <Property name="UserNameListFilter">(objectClass=person)</Property> 
      <Property name="UserEntryObjectClass">identityPerson</Property> 

      <Property name="UserSearchBase">ou=Users,dc=foobar,dc=com</Property> 

      <Property name="UserNameSearchFilter">(&amp;(objectClass=person)(uid=?))</Property> 
      <Property name="UserNameAttribute">uid</Property> 
      <Property name="PasswordJavaScriptRegEx">^[\S]{5,30}$</Property> 
      <Property name="ServicePasswordJavaRegEx">^[\\S]{5,30}$</Property> 
      <Property name="ServiceNameJavaRegEx">^[\\S]{2,30}/[\\S]{2,30}$</Property> 
      <Property name="UsernameJavaScriptRegEx">^[\S]{3,30}$</Property> 
      <Property name="UsernameJavaRegEx">[a-zA-Z0-9._-|//]{3,30}$</Property> 
      <Property name="RolenameJavaScriptRegEx">^[\S]{3,30}$</Property> 
      <Property name="RolenameJavaRegEx">[a-zA-Z0-9._-|//]{3,30}$</Property> 
      <Property name="ReadGroups">true</Property> 
      <Property name="WriteGroups">true</Property> 
      <Property name="EmptyRolesAllowed">true</Property> 

      <Property name="GroupSearchBase">ou=Groups,dc=foobar,dc=com</Property> 

      <Property name="GroupNameListFilter">(objectClass=groupOfNames)</Property> 
      <Property name="GroupEntryObjectClass">groupOfNames</Property> 
      <Property name="GroupNameSearchFilter">(&amp;(objectClass=groupOfNames)(cn=?))</Property> 
      <Property name="GroupNameAttribute">cn</Property> 
      <Property name="SharedGroupNameAttribute">cn</Property> 

      <Property name="SharedGroupSearchBase">ou=SharedGroups,dc=foobar,dc=com</Property> 

      <Property name="SharedGroupEntryObjectClass">groupOfNames</Property> 
      <Property name="SharedGroupNameListFilter">(objectClass=groupOfNames)</Property> 
      <Property name="SharedGroupNameSearchFilter">(&amp;(objectClass=groupOfNames)(cn=?))</Property> 
      <Property name="SharedTenantNameListFilter">(objectClass=organizationalUnit)</Property> 
      <Property name="SharedTenantNameAttribute">ou</Property> 
      <Property name="SharedTenantObjectClass">organizationalUnit</Property> 
      <Property name="MembershipAttribute">member</Property> 
      <Property name="UserRolesCacheEnabled">true</Property> 

      <Property name="UserDNPattern">uid={0},ou=Users,dc=foobar,dc=com</Property> 
      <Property name="RoleDNPattern">cn={0},ou=Groups,dc=foobar,dc=com</Property> 

      <Property name="SCIMEnabled">true</Property> 
      <Property name="MaxRoleNameListLength">100</Property> 
      <Property name="MaxUserNameListLength">100</Property> 
     </UserStoreManager> 
... 

時啓動WSO2是錯誤是:

Caused by: org.wso2.carbon.user.core.UserStoreException: [LDAP: error code 32 - NO_SUCH_OBJECT: failed for  SearchRequest 
     baseDn : 'ou=Groups,dc=foobar,dc=com' 
     filter : '(&(2.5.4.0=groupofnames)(2.5.4.3=*))' 
     scope : whole subtree 
     typesOnly : false 
     Size Limit : 100 
     Time Limit : 11 
     Deref Aliases : deref Always 
     attributes : 'cn' 
: ERR_268 Cannot find a partition for ou=Groups,dc=foobar,dc=com] 
    at org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager.getLDAPRoleNames(ReadOnlyLDAPUserStoreManager.java:1024) 
    at org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager.doGetRoleNames(ReadOnlyLDAPUserStoreManager.java:1134) 
    at org.wso2.carbon.user.core.common.AbstractUserStoreManager.getRoleNames(AbstractUserStoreManager.java:2485) 
    at org.wso2.carbon.user.core.common.AbstractUserStoreManager.getRoleNames(AbstractUserStoreManager.java:2382) 
    at org.wso2.carbon.user.core.common.AbstractUserStoreManager.getRoleNames(AbstractUserStoreManager.java:2375) 
    at org.wso2.carbon.event.core.internal.subscription.registry.RegistrySubscriptionManager.<init>(RegistrySubscriptionManager.java:91) 
    ... 65 more 

我應該缺少什麼?

回答

2

解決

我已經取代較舊的域,並在下列文件defaultRealmName

  1. IS_HOME/repository/conf/user-mgt.xml
  2. IS_HOME/repository/conf/tenant-mgt.xml
  3. IS_HOME/repository/conf/embedded-ldap.xml

我已經更換爲dc=wso2,dc=orgdc=foobar,dc=comdefaultRealmName=WSO2.ORGFOOBAR.COM,然後我刪除了名爲root地處IS_HOME/repository/data/org.wso2.carbon.directory 目錄..所以一個新的默認分區將在重新啓動重新創建。

現在,如果使用任何LDAP客戶端連接到WSO2IS的嵌入式LDAP(10389端口),您將看到新的域FOOBAR.COM而不是WSO2.ORG

我希望有用。

+0

如果這是正確的答案,請考慮接受您自己的答案。 –

0

我想你試圖改變「dc = wso2,dc = org」的值。您不能使用user-mgt.xml文件進行更改。 user-mgt.xml文件用於連接WSO2IS與LDAP或AD或JDBC用戶存儲。這意味着可以在外部運行LDAP,並且您需要配置user-mgt.xml文件以使用適當的配置連接該LDAP。默認情況下,WSO2IS隨附嵌入式LDAP服務器,默認情況下user-mgt.xml文件已配置爲指向該嵌入式LDAP服務器。此嵌入式LDAP使用「dc = wso2,dc = org」值創建。您可以在「embedded-ldap.xml」文件中找到此嵌入式LDAP的配置。但是沒有參數來配置域「」dc = wso2,dc = org「,這意味着我們不能配置它,但是你仍然可以使用ApacheDS,OpenDJ和OpenLDAP創建你自己的LDAP服務器,並且可以將它指向WSO2 !Identity Server的