как настроить ApacheDSUserStoreManager в качестве внешнего менеджера хранилища пользователей ldap на сервере идентификации wso2

Я новичок в wso2 и использую wso2 Identity Server для аутентификации и авторизации в своем проекте. Но у меня возникла проблема с настройкой ApacheDSUserStoreManager в качестве внешнего менеджера хранилища пользователей ldap на сервере идентификации wso2. пожалуйста, может ли кто-нибудь предоставить мне правильный способ продолжить. моя конфигурация следующая.

файл конфигурации

<UserStoreManager class="org.wso2.carbon.user.core.ldap.ApacheDSUserStoreManager">
    <Property name="defaultRealmName">sample.com</Property>
    <Property name="kdcEnabled">false</Property>
    <Property name="ConnectionURL">ldap://localhost:10389</Property> 
    <Property name="ConnectionName">uid=rpurimitla,ou=manage,dc=sample,dc=com</Property>
    <Property name="ConnectionPassword">sample</Property>
    <Property name="passwordHashMethod">SHA</Property>
    <Property name="UserSearchBase">ou=manage,dc=sample,dc=com</Property>
    <Property name="UserEntryObjectClass">inetOrgPerson</Property>
    <Property name="UserNameAttribute">uid</Property>
    <Property name="isADLDSRole">true</Property>
    <Property name="userAccountControl">512</Property>
    <Property name="UserNameListFilter">(objectClass=user)</Property>
    <Property name="UserNameSearchFilter">(&amp;(objectClass=user)(cn=?))</Property>
    <Property name="UsernameJavaRegEx">[a-zA-Z0-9._-]{3,30}$</Property>
    <Property name="UsernameJavaScriptRegEx">^[\\S]{3,30}$</Property>
    <Property name="PasswordJavaScriptRegEx">^[\\S]{5,30}$</Property>
    <Property name="RolenameJavaScriptRegEx">^[\\S]{3,30}$</Property>
    <Property name="RolenameJavaRegEx">[a-zA-Z0-9._-]{3,30}$</Property>
    <Property name="ReadLDAPGroups">true</Property>
    <Property name="WriteLDAPGroups">true</Property>
    <Property name="EmptyRolesAllowed">true</Property>
    <Property name="GroupSearchBase">ou=manage,dc=sample,dc=com</Property>
    <Property name="GroupEntryObjectClass">group</Property>
    <Property name="GroupNameAttribute">cn</Property>
    <Property name="MembershipAttribute">member</Property>
    <Property name="GroupNameListFilter">(objectcategory=group)</Property>
    <Property name="GroupNameSearchFilter">(&amp;(objectClass=group)(cn=?))</Property>
    <Property name="UserRolesCacheEnabled">true</Property>
    <Property name="Referral">follow</Property>
    <Property name="BackLinksEnabled">true</Property>
    </UserStoreManager>

это ошибка, которую я получаю

2013-07-26 17:57:47,781] ИНФОРМАЦИЯ {org.wso2.carbon.databridge.agent.thrift.AgentHolder} — агент создан! [2013-07-26 17:57:47,859] ИНФОРМАЦИЯ {org.wso2.carbon.databridge.agent.thrift.internal.AgentDS} – успешно развернут клиент агента [2013-07-26 17:57:48,000] ИНФОРМАЦИЯ {org. .wso2.carbon.identity.authenticator.iwa.ui.internal.Activator} — в системе включен встроенный аутентификатор Windows [2013-07-26 17:57:48,234] INFO {org.wso2.carbon.ldap.server.DirectoryActivator } — встроенный LDAP отключен. [2013-07-26 17:57:49,781] ОШИБКА {org.wso2.carbon.user.core.common.DefaultRealm} - Невозможно создать org.wso2.carbon.user.core.ldap.ApacheDSUserStoreManager java.lang .ClassNotFoundException: org.wso2.carbon.user.core.ldap.ApacheDSUserStoreManager вorg.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513) в org.eclipse.osgi.internal. loader.BundleLoader.findClass(BundleLoader.java:429) в org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) в org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader. java:107) в java.lang.ClassLoader.loadClass(ClassLoader.java:251) в java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) в java.lang.Class.forName0(собственный метод) в java.lang .Class.forName(Class.java:169) на org.wso2.carbon.user.core.common.DefaultRealm.createObjectWithOptions(DefaultRealm.java:215) на org.wso2.carbon.user.core.common.DefaultRealm.init ializeObjects(DefaultRealm.java:147) в org.wso2.carbon.user.core.common.DefaultRealm.init(DefaultRealm.java:113) в org.wso2.carbon.user.core.common.DefaultRealmService.initializeRealm(DefaultRealmService. java:223) в org.wso2.carbon.user.core.common.DefaultRealmService.(DefaultRealmService.java:103) в org.wso2.carbon.user.core.common.DefaultRealmService.(DefaultRealmService.java:116) в org. .wso2.carbon.user.core.internal.Activator.startDeploy(Activator.java:67) в org.wso2.carbon.user.core.internal.BundleCheckActivator.start(BundleCheckActivator.java:61) в org.eclipse.osgi .framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711) в java.security.AccessController.doPrivileged(собственный метод)

================================================================================


person ravi purimitla    schedule 26.07.2013    source источник
comment
ваш вопрос похож на этот SO stackoverflow.com/questions/17330883/   -  person johannes.schmidt.delaunay    schedule 30.07.2013


Ответы (1)


Если вы используете IS 4.0.0 или более позднюю версию, класс ApacheDSUserStoreManager был удален из этих выпусков. Вам нужно изменить свои конфигурации в соответствии с вашей версией.

Вам необходимо удалить комментарий из приведенного ниже раздела в файле user-mgt.xml и соответствующим образом изменить настройки.

  <!--UserStoreManager class="org.wso2.carbon.user.core.ldap.ReadWriteLDAPUserStoreManager">
        <Property name="ConnectionURL">ldap://localhost:10389</Property>
        <Property name="ConnectionName">uid=admin,ou=system</Property>
        <Property name="ConnectionPassword">secret</Property>
        <Property name="passwordHashMethod">PLAIN_TEXT</Property>
        <Property name="UserNameListFilter">(objectClass=person)</Property>
        <Property name="UserEntryObjectClass">inetOrgPerson</Property>
        <Property name="UserSearchBase">ou=system</Property>
        <Property name="UserNameSearchFilter">(&amp;(objectClass=person)(uid=?))</Property>
        <Property name="UserNameAttribute">uid</Property>
        <Property name="UsernameJavaRegEx">[a-zA-Z0-9._-|//]{3,30}$</Property>
        <Property name="UsernameJavaScriptRegEx">^[\\S]{3,30}$</Property>
        <Property name="RolenameJavaScriptRegEx">^[\\S]{3,30}$</Property>
        <Property name="RolenameJavaRegEx">[a-zA-Z0-9._-|//]{3,30}$</Property>
        <Property name="PasswordJavaScriptRegEx">^[\\S]{5,30}$</Property>
        <Property name="ReadLDAPGroups">true</Property>
        <Property name="WriteLDAPGroups">true</Property>
        <Property name="EmptyRolesAllowed">false</Property>
        <Property name="GroupSearchBase">ou=system</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="MembershipAttribute">member</Property>
        <Property name="UserRolesCacheEnabled">true</Property>
        <Property name="ReplaceEscapeCharactersAtUserLogin">true</Property>
        <Property name="maxFailedLoginAttempt">0</Property>
    </UserStoreManager-->

В приведенной ниже ссылке [1] есть связанные проблемы.

[1] WSO2 Внешний LDAP Identity Server выдает OBJECT_CLASS для OID identityperson не существует

Надеюсь, это полезно.

person Venura    schedule 06.11.2013