В этом посте я продемонстрирую, как настроить WSO2 Identity Server с хранилищем пользователей JDBC. Для демонстрации я использую хранилище пользователей MySQL, но та же процедура применима и к любому другому хранилищу пользователей JDBC. Моя среда
- ОС — Ubuntu 12.10
- Java — 1.6
- WSO2 IS 4.5.0
- Настройка базы данных MySQL
- Конфигурация хранилища пользователей в IS — первичная
- Конфигурация хранилища пользователя в IS — вторичный
(Я имею в виду извлеченную папку wso2is как CARBON_HOME в этом посте)
Настройка базы данных MySQL
Сначала нам нужно запустить MySQL. Этот пост будет полезен при настройке базы данных MySQL , если это еще не сделано. После запуска MySQL мы должны настроить базу данных в соответствии с требованиями Identity Server. Сервер упаковывает в себя необходимые сценарии sql, которые можно найти по адресу CARBON_HOME / dbscripts.
Давайте войдем на сервер MySQL и выполним следующее:
Создать базу данных,
1
|
mysql> create datbase JDBC_demo_user_store; |
Проверьте создание,
1
|
mysql> show databases; |
Затем используйте сценарий sql и настройте базу данных,
1
|
mysql> use JDBC_demo_user_store; |
1
|
mysql> source <path_to>/wso2is- 4.5 . 0 /dbscripts/mysql.sql; |
Это запустит запросы в сценариях SQL и настроит необходимые таблицы.
Теперь, если мы введем команды, будут показаны следующие результаты.
1
|
mysql> show tables; |
Теперь мы закончили с настройкой базы данных. Мы можем пойти дальше и попросить Identiy Server использовать его.
Примечание. Прежде чем перейти к следующим шагам, нам также необходимо добавить соединитель mysql-jdbc на Identity Server. Вы можете скачать его отсюда и поместить в CARBON_HOME / repository / components / lib.
Конфигурация хранилища пользователей в IS — первичная
Identity Server использует встроенную базу данных H2 для хранения сведений о разрешениях и т. Д., А сведения об источниках данных находятся в CARBON_HOME / repository / conf / datasources / master-datasources.xml. Здесь мы также можем добавить информацию об источнике данных нашего нового пользовательского хранилища JDBC. Вот файл master-datasources.xml в соответствии с моей настройкой.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
|
<datasource> <name>JDBC_demo_user_store</name> <description>The datasource used for JDBC_demo_user_store</description> <jndiConfig> <name>jdbc/JDBC_demo_user_store</name> </jndiConfig> <definition type= "RDBMS" > <configuration> <url>jdbc:mysql: //localhost:3306/JDBC_demo_user_store</url> <username>root</username> <password>pushpalanka2</password> <driverClassName>com.mysql.jdbc.Driver</driverClassName> <maxActive> 50 </maxActive> <maxWait> 60000 </maxWait> <testOnBorrow> true </testOnBorrow> <validationQuery>SELECT 1 </validationQuery> <validationInterval> 30000 </validationInterval> </configuration> </definition> </datasource> |
Основная конфигурация для хранилища пользователей находится в файле CARBON_HOME / repository / conf / user-mgt.xml. По умолчанию это указывает на встроенный ReadLDAPUserStoreManager. Теперь нам нужно изменить его на JDBCUserStoreManager. Итак, давайте закомментируем один по умолчанию и раскомментируем JDBCUserStoreManager. Теперь у нас будет файл user-mgt.xml, похожий на этот . Если мы хотим, мы можем изменить эти свойства, как мы хотим, в соответствии с контекстом.
Теперь настройки завершены. Давайте запустим сервер с bin / wso2server.sh. После начала, если мы пойдем дальше и добавим пользователя в «основной» домен.
Теперь, если мы пойдем и проверим таблицу UM_USER, созданную в нашей базе данных, она также выведет список пользователей.
Конфигурация хранилища пользователя в IS — вторичный
Теперь давайте посмотрим, как мы можем использовать это же хранилище пользователей MySQL в качестве вторичного хранилища пользователей в IS. Это довольно легко, что мы можем сделать все это через пользовательский интерфейс, без каких-либо изменений в указанных выше конфигурациях по умолчанию в master-datasources.xml или user-mgt.xml. Здесь мы должны добавить имя драйвера, URL, имя пользователя и пароль в качестве обязательных свойств, которые мы ранее указали в master-datasources.xml.
После добавления он будет показан в списке доступных пользовательских магазинов. Определение менеджера пользовательского магазина в пользовательском интерфейсе интуитивно понятно, но если вы хотите больше подробностей, вы можете обратиться к этому посту . Если мы хотим, мы также можем редактировать дополнительные свойства. В расширенном разделе содержатся операторы SQL, необходимые для менеджера хранилища пользователей JDBC.
Расширенный параметр: Если мы редактируем структуру базы данных (сценарий sql), нам нужно обновить эти SQL-запросы в соответствии с этой схемой, используя этот параметр Advanced.
Теперь, если мы пойдем и попробуем добавить нового пользователя, мы увидим и этот вторичный домен.
Мы можем видеть, как пользователи добавляются в базу данных так же, как это было в основном хранилище пользователей, если мы выберем этот домен и добавим пользователей.