Не удается найти WSO2CarbonDB в установке пакета debian wso2is-5.7.0 - PullRequest
0 голосов
/ 17 января 2019

Я установил wso2is-5.7.0 из пакета debian. Мои источники данных имеют WSO2_Carbon_DB с использованием jdbc / WSO2CarbonDB, который определен в tomcat / Catalina-server.xml. Когда я запускаю wso2server.sh, он запускается со строками журнала:

TID: [-1234] [] [2019-01-17 12: 33: 25,611] ОШИБКА {org.wso2.carbon.user.core.inter nal.Activator} - Невозможно запустить основной пакет User Manager Core java.lang.RuntimeException: Ошибка при поиске источника данных: имя [WSO2CarbonDB] не связано в этом контексте. Невозможно найти [WSO2CarbonDB].

Я нигде не упоминаю WSO2CarbonDB в моей конфигурации. Ниже приведено содержимое моего user-mgt.xml:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  <UserManager>
    <Realm>
        <Configuration>
        <AddAdmin>false</AddAdmin>
            <AdminRole>wso2admin</AdminRole>
            <AdminUser>
                <UserName>admin</UserName>
                <Password>admin</Password>
            </AdminUser>
            <EveryOneRoleName>everyone</EveryOneRoleName> <!-- By default users in this role sees the registry root -->
            <Property name="isCascadeDeleteEnabled">false</Property>
            <Property name="dataSource">jdbc/WSO2CarbonDB</Property>
        </Configuration>
        <AuthorizationManagerclass="org.wso2.carbon.user.core.authorization.JDBCAuthorizationManager">
            <Property name="AdminRoleManagementPermissions">/permission</Property>
            <Property name="AuthorizationCacheEnabled">true</Property>
            <Property name="GetAllRolesOfUserEnabled">false</Property>
        </AuthorizationManager>
<UserStoreManager class="org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager">
        <Property name="TenantManager">org.wso2.carbon.user.core.tenant.CommonHybridLDAPTenantManager</Property>
        <Property name="ReadOnly">true</Property>
        <Property name="Disabled">false</Property>                       
        <Property name="MaxUserNameListLength">100</Property>
        <Property name="ConnectionURL">ldap://ldap.xyz.com:389</Property>
        <Property name="ConnectionName">uid=ldapadmin,ou=People,dc=xyz,dc=com</Property>
        <Property name="ConnectionPassword">secret</Property>
        <Property name="passwordHashMethod">PLAIN_TEXT</Property>
        <Property name="UserSearchBase">ou=People,dc=xyz,dc=com</Property>
        <Property name="UserNameListFilter">(objectClass=account)</Property>
        <Property
        name="UserNameSearchFilter">(&amp;(objectClass=account)(|(uid=?)(mail=?)))</Property>
        <Property name="UserNameAttribute">uid</Property>
        <Property name="ReadGroups">true</Property>
        <Property name="GroupSearchBase">ou=Group,dc=xyz,dc=com</Property>
        <Property name="GroupNameListFilter">(objectClass=posixGroup)</Property>
        <Property name="GroupNameSearchFilter">(&amp;(objectClass=posixGroup)(cn=?))</Property>
        <Property name="GroupNameAttribute">cn</Property>
        <Property name="SharedGroupNameAttribute">cn</Property>
        <Property name="SharedGroupSearchBase">ou=Groupshare,dc=xyz,dc=com</Property>
        <Property name="SharedGroupNameListFilter">(objectClass=posixGroup)</Property>
        <Property name="SharedTenantNameListFilter">(objectClass=organizationalUnit)</Property>
        <Property name="SharedTenantNameAttribute">ou</Property>
        <Property name="SharedTenantObjectClass">organizationalUnit</Property>
        <Property name="MembershipAttribute">memberUid</Property>
        <Property name="UserRolesCacheEnabled">true</Property>
        <Property name="ReplaceEscapeCharactersAtUserLogin">true</Property>
        <Property name="MaxRoleNameListLength">100</Property>
        <Property name="MaxUserNameListLength">100</Property>
        <Property name="SCIMEnabled">false</Property>
        <Property name="MultiAttributeSeparator">,</Property>
        <Property name="ReadTimeout"/>
        <Property name="RetryAttempts"/>
    </UserStoreManager>
</Realm>
</UserManager>

Как мне избавиться от ссылки [WSO2CarbonDB] или умиротворить ее? Я безуспешно пытался добавить для него источник данных и определение jndi.

1 Ответ

0 голосов
/ 18 января 2019

Даже если вы используете LDAPUserStoreManager, источник данных JDBC, определенный в конфигурации Realm (в user-mgt.xml), по-прежнему требуется для хранения информации о разрешениях. Пожалуйста, обратитесь DOC для получения дополнительной информации.

В соответствии с конфигурацией по умолчанию в продуктах WSO2, пользователи, Роли и разрешения хранятся в одном и том же хранилище (т.е. по умолчанию, встроенная база данных H2). Тем не менее, вы можете изменить это конфигурация таким образом, что пользователи и роли хранятся в одном хранилище (User Store) и разрешения хранятся в отдельном хранилище.

Хранилище пользователя может быть типичной СУБД, LDAP или внешним Active Справочник.

Репозиторий, в котором хранятся разрешения, всегда должен быть СУБД. Конфигурация диспетчера авторизации в файле user-mgt.xml (хранится в / repository / conf / каталог) подключает систему к этой РСУБД.

Как вы определили следующую запись в user-mgt.xml,

  <UserManager>
    <Realm>
        <Configuration>
                <Property name="dataSource">jdbc/WSO2CarbonDB</Property>

Вы должны определить соответствующую информацию об источнике данных в файле master-datasource.xml (хранится в директории / repository / conf / datasources)

Например:

    <datasource>
        <name>WSO2_CARBON_DB</name>
        <description>carbon db</description>
        <jndiConfig>
            <name>jdbc/WSO2CarbonDB</name>
        </jndiConfig>
        <definition type="RDBMS">
            <configuration>
           <url>jdbc:mysql://localhost:3310/carbondb</url>
           <username>dbuser</username>
           <password>password</password>
           <driverClassName>com.mysql.jdbc.Driver</driverClassName>
                <maxActive>50</maxActive>
                <maxWait>60000</maxWait>
                <testOnBorrow>true</testOnBorrow>
                <validationQuery>SELECT 1</validationQuery>
                <validationInterval>30000</validationInterval>
                <defaultAutoCommit>false</defaultAutoCommit>
            </configuration>
        </definition>
    </datasource>

Как мне избавиться от ссылки [WSO2CarbonDB] или умиротворить ее? я имею попытался добавить источник данных для него и определение jndi для него без удачи.

Убедитесь, что имя JNDI, определенное в master-datasources.xml, точно совпадает с именем dataSource, настроенным в user-mgt.xml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...