2016-03-01 3 views
1

Я пытаюсь настроить OpenFire на Ubuntu для MySQL. Этот вопрос я не могу для аутентификации пользователей с помощью базы данных B.Конфигурация Openfire для интеграции пользовательской базы данных для MySQL

Вот конфигурация мне нужно

1) База данных А держать таблицы OpenFire. 2) Существующая база данных B, содержащая пользовательскую инфорацию, которая мне нужна для входа пользователя через openfire

Следующее руководство по открытому файлу для интеграции пользовательской базы данных. https://www.igniterealtime.org/builds/openfire/docs/latest/documentation/db-integration-guide.html

Если кто-либо, имеющий аналогичную конфигурацию, может успешно настроить openfire, пожалуйста, помогите.

Вот openfire.xml, все свойства, указанные в XML уже сохранены в ofProp таблице, а ..

<jive> 

    <connectionProvider> 
    <className>org.jivesoftware.database.DefaultConnectionProvider</className> 
    </connectionProvider> 

    <database> 
    <defaultProvider> 
     <driver>com.mysql.jdbc.Driver</driver> 
     <serverURL>jdbc:mysql://localhost:3306/DBOpenFire?rewriteBatchedStatements=true</serverURL> 
     <username encrypted="true">200a0b84b1fa2jsdsdjds31c2abf99393c0a31a1de5c734edf</username> 
     <password encrypted="true">67452fbde9c80636f8486ea43932kksddfdksjdsd0b12284eac45455</password> 
     <testSQL>select 1</testSQL> 
     <testBeforeUse>false</testBeforeUse> 
     <testAfterUse>false</testAfterUse> 
     <minConnections>5</minConnections> 
     <maxConnections>25</maxConnections> 
     <connectionTimeout>1.0</connectionTimeout> 
    </defaultProvider> 
    </database> 
    <setup>true</setup> 

    <provider> 
    <auth> 
     <className>org.jivesoftware.openfire.auth.JDBCAuthProvider</className> 
    </auth> 
    <user> 
     <className>org.jivesoftware.openfire.user.JDBCUserProvider</className> 
    </user> 
    </provider> 

    <jdbcProvider> 
     <driver>com.mysql.jdbc.Driver</driver> 
     <connectionString>jdbc:mysql://localhost/DBUsers?user=root&amp;password=mypasscode</connectionString> 
    </jdbcProvider> 

    <jdbcAuthProvider> 
    <passwordSQL>SELECT Password from tblUser where UserName=?</passwordSQL> 
    <passwordType>plain</passwordType> 
    </jdbcAuthProvider> 

    <jdbcUserProvider> 
    <loadUserSQL>SELECT * FROM tblUser where UserName=?</loadUserSQL> 
    <userCountSQL>SELECT COUNT(*) FROM tblUser</userCountSQL> 
    <allUsersSQL>SELECT UserName FROM tblUser </allUsersSQL> 
    <searchSQL>SELECT UserNameFROM tblUser WHERE</searchSQL> 
    <usernameField>UserName</usernameField> 
    <nameField>UserName</nameField> 
    </jdbcUserProvider> 
</jive> 

ofProperty Значения:

jdbcAuthProvider.passwordSQL    SELECT UserPassword from tblUser where UserName=? 
jdbcAuthProvider.passwordType    plain 
jdbcProvider.driver      com.mysql.jdbc.Driver 
jdbcProvider.connectionString    jdbc:mysql://localhost:3306/DBUsers?user=root&password=mypasscode 
jdbcUserProvider.loadUserSQL    SELECT * FROM tblUser where UserName=? 
jdbcUserProvider.userCountSQL    SELECT COUNT(*) FROM tblUser 
jdbcUserProvider.allUsersSQL    SELECT UserName FROM tblUser 
jdbcUserProvider.searchSQL    SELECT UserName FROM tblUser WHERE 
jdbcUserProvider.usernameField   UserName 
jdbcUserProvider.nameField    UserName 
jdbcUserProvider.useConnectionProvider true 
jdbcAuthProvider.useConnectionProvider true 
provider.user.className     org.jivesoftware.openfire.user.JDBCUserProvider 
provider.auth.className     org.jivesoftware.openfire.auth.JDBCAuthProvider 
admin.authorizedJIDs      [email protected] 

Спасибо большое! !!

ответ

0

Не может помочь с этими небольшими сведениями. Вот что вы должны делать. 1-Проверьте, что ubuntu содержит драйвер mysql для подключения.

2-Проверьте соединение с базой данных B.

provider.auth.className org.jivesoftware.openfire.auth.JDBCAuthProvider provider.user.className org.jivesoftware.openfire.user. JDBCUserProvider

3 Создание пользовательских запросов для JID, электронная почта, количество JID

4-Создание пользовательских запросов для баз данных в случае, если вы используете нечеткие пароли.

5-Создание пользовательских запросов для групп в случае, если вы хотите использовать внешние списки

FYI: вставить эти запросы в Openfire администратора сервера-свойств, чтобы избежать перезагрузки сервера. Если что-то пошло не так, удалите этот контент из таблицы OfProperty openfire.

+0

У Ubuntu есть драйвер mysql, и openfire может подключиться к базе данных A и войти в openfire через Spark. У меня возникли проблемы с настройкой openfire для аутентификации использования из базы данных B. Оба DB находятся на одном компьютере .. –

+0

Посмотрите на отредактируйте, начните обновлять их. –

+0

Добавил xml к исходному вопросу. Уже добавлен JDBCAuthProvider и JDBCUserProvider в XML, а также из таблицыProperty. –

0

Manoj Ваша конфигурация выглядит нормально, и она должна работать, у меня также есть такая конфигурация, и она работает нормально.

Вы пытались отладить код?
Вы проверили журналы, чтобы убедиться, что код не сбой?

+0

Привет, sohaib, я тестирую d-соединение через искру и консоль администратора openfire, поэтому никакой код не задействован/сбой. Можете ли вы вставить свою конфигурацию здесь plz для таблицы XML и forProp. –

+0

Manoj, у меня такая же конфигурация, как у вас в таблице ofProperty, однако такой конфигурации в xml нет, только из свойстваProperty. Кроме того, у меня есть пользовательские изменения как в Auth Provider, так и в User Provider, но они полностью специфичны для бизнес-логики. Если у вас есть внутреннее развертывание Openfire, сначала нужно проверить журналы, чтобы убедиться, что исключений нет. –

+0

@ShoaibAhmadGondal нужна ваша помощь, возможно ли вам присоединиться к чату? –