Как изменить основной домен LDAP WSO2 IS 4.5.0

Я хотел бы изменить домен основного пользовательского хранилища (на основе LDAP), но не могу добиться успеха.

Текущий домен в 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 IS:

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

Что я должен упустить?


person Chilcano    schedule 14.11.2013    source источник


Ответы (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=org на dc=foobar,dc=com и defaultRealmName=WSO2.ORG на FOOBAR.COM, затем я удалил каталог с именем root, расположенный в IS_HOME/repository/data/org.wso2.carbon.directory .. поэтому при перезапуске снова будет создан новый раздел по умолчанию.

Теперь, если вы подключитесь к встроенному LDAP WSO2IS (порт 10389) с помощью любого клиента LDAP, вы увидите новый домен FOOBAR.COM вместо WSO2.ORG.

Я надеюсь, что это будет полезно.

person Chilcano    schedule 15.11.2013
comment
Если это правильный ответ, рассмотрите возможность принятия собственного ответа. - person Terry Gardner; 15.11.2013

Я думаю, вы пытаетесь изменить значение "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». Конфигурации этого встроенного LDAP можно найти в файле «embedded-ldap.xml». Но нет параметра для настройки домена ""dc=wso2,dc=org". То есть мы не можем его настроить. Но вы все равно можете создать свой LDAP-сервер с помощью ApacheDS, OpenDJ и OpenLDAP и указать его на WSO2 Идентификационный сервер.

person Asela    schedule 15.11.2013