|
<html><head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<title>Автоматизированная библиотечно-информационная система "Руслан-Нео"</title><link rel="stylesheet" type="text/css" href="http://demo.ruslan.ru/doc.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div lang="ru" class="set"><div class="titlepage"><div><div><h1 class="title"><a name="d0e1"></a>Автоматизированная библиотечно-информационная система
|
|
"Руслан-Нео"</h1></div></div><hr></div><div class="set" lang="ru"><div class="titlepage"><div><div><h1 class="title"><a name="d0e7"></a>Сервер</h1></div></div><hr></div><div class="book"><div class="titlepage"><div><div><h1 class="title"><a name="rneo-32"></a>Руководство системного программиста</h1></div><div><div class="author"><h3 class="author"><span class="orgname">ООО "Открытые библиотечные системы"</span></h3></div></div><div><div class="author"><h3 class="author"><span class="firstname">Рустам</span> <span class="surname">Усманов</span></h3></div></div><div><p class="releaseinfo">
|
|
Версия
|
|
1.14.1
|
|
</p></div><div><p class="copyright">Авторские права © 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024 ООО "Открытые библиотечные системы"</p></div></div><hr></div><div class="toc"><dl class="toc"><dt><span class="preface"><a href="#preface">Аннотация</a></span></dt><dt><span class="chapter"><a href="#general">1. Общие сведения о программе</a></span></dt><dt><span class="chapter"><a href="#structure">2. Структура программы</a></span></dt><dt><span class="chapter"><a href="#installation-configuration">3. Настройка программы</a></span></dt><dd><dl><dt><span class="section"><a href="#installation">3.1. Установка программы</a></span></dt><dt><span class="section"><a href="#configuration">3.2. Настройка программы</a></span></dt></dl></dd><dt><span class="chapter"><a href="#d0e1332">4. Проверка программы</a></span></dt><dt><span class="chapter"><a href="#d0e1343">5. Дополнительные возможности</a></span></dt><dt><span class="chapter"><a href="#d0e1354">6. Сообщения системному программисту</a></span></dt><dt><span class="glossary"><a href="#terms">Перечень терминов и их определений</a></span></dt><dt><span class="glossary"><a href="#abbreviations">Перечень сокращений</a></span></dt><dt><span class="appendix"><a href="#app-1">1. Конфигурационный файл сервера приложений WildFly</a></span></dt><dd><dl><dt><span class="section"><a href="#datasource">1.1. Источник данных</a></span></dt><dt><span class="section"><a href="#repository">1.2. Репозиторий</a></span></dt><dt><span class="section"><a href="#security-domains">1.3. Домены безопасности</a></span></dt></dl></dd></dl></div><div class="preface"><div class="titlepage"><div><div><h1 class="title"><a name="preface"></a>Аннотация</h1></div></div></div><p>
|
|
В данном документе приведены общие сведения о компонентах серверной
|
|
части
|
|
<a class="glossterm" href="#ab-abis"><em class="glossterm"><a class="glossterm" href="#ab-abis" title="АБИС">AБИС</a></em></a>
|
|
<span class="application">"Руслан-Нео"</span>
|
|
. Описаны порядок настройки и проверки компонентов, дополнительные
|
|
возможности.
|
|
</p></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="general"></a>Глава 1. Общие сведения о программе</h1></div></div></div><p>
|
|
Серверная часть
|
|
<span class="application">"Руслан-Нео"</span>
|
|
предназначена для обеспечения доступа удалённых пользователей к
|
|
ресурсам
|
|
<a class="glossterm" href="#ab-abis"><em class="glossterm"><a class="glossterm" href="#ab-abis" title="АБИС">АБИС</a></em></a>
|
|
<span class="application">"Руслан-Нео"</span>.
|
|
Удалёнными пользователями могут являться любые пользователи
|
|
сервера приложений
|
|
<a class="link" href="http://wildfly.org" target="_top">
|
|
<span class="application">WildFly</span>
|
|
</a>, на базе которого функционирует
|
|
<a class="glossterm" href="#ab-abis"><em class="glossterm"><a class="glossterm" href="#ab-abis" title="АБИС">АБИС</a></em></a>. Ресурсами
|
|
<a class="glossterm" href="#ab-abis"><em class="glossterm"><a class="glossterm" href="#ab-abis" title="АБИС">АБИС</a></em></a>
|
|
<span class="application">"Руслан-Нео"</span>
|
|
являются коллекции записей (БД) и собственно записи, поддерживаемые
|
|
<span class="application">сервером "Руслан-Нео"</span>. Доступ к ресурсам заключается в выполнении над ними следующих
|
|
операций:
|
|
</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
|
|
Поиск и извлечение (по протоколам
|
|
<a class="glossterm" href="#ab-sru"><em class="glossterm"><a class="glossterm" href="#ab-sru" title="SRU">SRU</a></em></a>
|
|
2.0 и Z39.50)
|
|
</p></li><li class="listitem"><p>
|
|
Извлечение, модификация, создание, удаление, блокировка,
|
|
разблокировка
|
|
(по протоколу <a class="glossterm" href="#ab-webdav"><em class="glossterm"><a class="glossterm" href="#ab-webdav" title="WebDAV">WebDAV</a></em></a>)
|
|
</p></li><li class="listitem"><p>
|
|
Операции, связанные с процессами книговыдачи, в т.ч. заказ
|
|
услуги
|
|
(бронирование, копия) по найденному библиографическому
|
|
описанию (по
|
|
протоколам
|
|
<a class="glossterm" href="#ab-ncip"><em class="glossterm"><a class="glossterm" href="#ab-ncip" title="NCIP">NCIP</a></em></a>
|
|
v. 2.0.2 и 3M™ <a class="glossterm" href="#ab-sip"><em class="glossterm"><a class="glossterm" href="#ab-sip" title="SIP">SIP</a></em></a> v. 2.00)
|
|
</p></li></ul></div><p>
|
|
</p><p>
|
|
Операции, связанные с чтением данных с ограниченным доступом и
|
|
записью
|
|
данных, требуют наличия соответствующих прав у пользователя,
|
|
а
|
|
следовательно и идентификации пользователя. Идентификация
|
|
пользователя
|
|
осуществляется при помощи провайдера идентификации по
|
|
протоколу
|
|
<a class="glossterm" href="#ab-saml"><em class="glossterm"><a class="glossterm" href="#ab-saml" title="SAML">SAML</a></em></a>
|
|
2.0.
|
|
</p><p>
|
|
Ресурсы хранятся в хранилище данных и представляются в двух
|
|
форматах:
|
|
<a class="glossterm" href="#ab-xml"><em class="glossterm"><a class="glossterm" href="#ab-xml" title="XML">XML</a></em></a>
|
|
и
|
|
<a class="glossterm" href="#ab-json"><em class="glossterm"><a class="glossterm" href="#ab-json" title="JSON">JSON</a></em></a>, в зависимости от предпочтений пользователя.
|
|
</p><p>
|
|
Программы серверной части могут функционировать на любых
|
|
технических
|
|
средствах под управлением сервера приложений
|
|
<span class="application">WildFly</span>
|
|
версии 10.*.
|
|
</p><p>
|
|
Обязательными требованиями для выполнения программ серверной части
|
|
являются:
|
|
</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
|
|
наличие установленного
|
|
<a class="glossterm" href="#term-wildfly-static-module"><em class="glossterm"><a class="glossterm" href="#term-wildfly-static-module" title="Статический модуль WildFly">статического
|
|
модуля
|
|
</a></em></a>
|
|
<span class="application">WildFly</span>
|
|
<a class="link" href="http://picketlink.org" target="_top">PicketLink</a>
|
|
версии
|
|
<a class="link" href="http://downloads.jboss.org/picketlink/2/2.7.0.Final/picketlink-installer-2.7.0.Final.zip" target="_top">2.7.0.Final</a>
|
|
</p></li><li class="listitem"><p>
|
|
наличие установленного
|
|
<a class="glossterm" href="#term-wildfly-static-module"><em class="glossterm"><a class="glossterm" href="#term-wildfly-static-module" title="Статический модуль WildFly">статического
|
|
модуля
|
|
</a></em></a>
|
|
<span class="application">WildFly</span>
|
|
<a class="link" href="http://modeshape.jboss.org" target="_top">ModeShape</a>
|
|
версии
|
|
<a class="link" href="https://github.com/ModeShape/modeshape/tree/modeshape-5.4.0.Final" target="_top">5.4.0.Final</a>
|
|
</p></li><li class="listitem"><p>
|
|
возможность взаимодействия с сервером
|
|
<a class="link" href="http://lucene.apache.org/solr/" target="_top">Solr</a>
|
|
версии
|
|
<a class="link" href="http://archive.apache.org/dist/lucene/solr/6.3.0/" target="_top">6.3.0</a>
|
|
</p></li></ul></div><p>
|
|
</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Примечание</h3><p>
|
|
После установки сервера
|
|
<span class="application">WildFly</span>
|
|
необходимо убедиться в том, что установленный
|
|
<a class="glossterm" href="#term-wildfly-static-module"><em class="glossterm"><a class="glossterm" href="#term-wildfly-static-module" title="Статический модуль WildFly">статический
|
|
модуль
|
|
</a></em></a>
|
|
<a class="link" href="http://picketlink.org" target="_top">
|
|
<span class="application">PicketLink</span>
|
|
</a>
|
|
имеет версию
|
|
<a class="link" href="http://downloads.jboss.org/picketlink/2/2.7.0.Final/picketlink-installer-2.7.0.Final.zip" target="_top">2.7.0.Final</a>.
|
|
При необходимости следует
|
|
<a class="link" href="http://picketlink.org/gettingstarted/" target="_top">обновить
|
|
этот модуль
|
|
</a>.
|
|
</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Примечание</h3><p>
|
|
Сведения, изложенные в этом разделе, отражены в составе
|
|
статических
|
|
модулей
|
|
<a class="link" href="http://projects.ruslan.ru/attachments/download/68/wildfly-10.1.0.Final.zip" target="_top">
|
|
специально подготовленного дистрибутива
|
|
<span class="application">WildFly</span>
|
|
</a>. Этот дистрибутив, а также сервер
|
|
<span class="application">Solr</span>
|
|
включены в конфигурацию
|
|
<a class="link" href="ftp://ftp.library.spbstu.ru/rneo/centos7-rneo/" target="_top">
|
|
виртуальной машины на базе дистрибутива
|
|
<span class="productname">CentOS</span>
|
|
</a>.
|
|
</p></div></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="structure"></a>Глава 2. Структура программы</h1></div></div></div><p>
|
|
Серверная часть
|
|
<span class="application">"Руслан-Нео"</span>
|
|
состоит из следующих компонентов:
|
|
</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>
|
|
<code class="filename">jrzs-ear*.ear</code>
|
|
-
|
|
<a class="glossterm" href="#term-z3950-client"><em class="glossterm"><a class="glossterm" href="#term-z3950-client" title="Z39.50-клиент">Z39.50-клиент</a></em></a>, реализованный в виде
|
|
<a class="glossterm" href="#ab-ejb"><em class="glossterm"><a class="glossterm" href="#ab-ejb" title="EJB">EJB</a></em></a>.
|
|
</p></li><li class="listitem"><p>
|
|
<code class="filename">ridp*.war</code>
|
|
- провайдер идентификации.
|
|
</p></li><li class="listitem"><p>
|
|
<code class="filename">rneo.ear</code>
|
|
- Базовые сервисы
|
|
<span class="application">"Руслан-Нео"</span>
|
|
, включая Web-интерфейс ресурсов.
|
|
</p></li><li class="listitem"><p>
|
|
<code class="filename">rneo-sip-acs-rar-*.rar</code>
|
|
- Адаптер ресурсов, поддерживающий взаимодействие по протоколу 3M™ <a class="glossterm" href="#ab-sip"><em class="glossterm"><a class="glossterm" href="#ab-sip" title="SIP">SIP</a></em></a> v. 2.00.
|
|
</p></li><li class="listitem"><p>
|
|
<code class="filename">rneo-ztarget-rar-*.rar</code>
|
|
- Адаптер ресурсов, поддерживающий взаимодействие по протоколу Z39.50.
|
|
</p></li></ol></div><p>
|
|
</p></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="installation-configuration"></a>Глава 3. Настройка программы</h1></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="installation"></a>3.1. Установка программы</h2></div></div></div><p>
|
|
Установка программы заключается в
|
|
<a class="link" href="https://docs.jboss.org/author/display/WFLY10/Application%20deployment.html" target="_top">развёртывании
|
|
компонентов программы на сервере
|
|
приложений WildFly.
|
|
</a>
|
|
</p><p>
|
|
Необходимым условием для развёртывания базовых сервисов является развёртывание адаптеров ресурсов.
|
|
</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="configuration"></a>3.2. Настройка программы</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="wildfly-configuration"></a>3.2.1. Настройка сервера приложений WildFly</h3></div></div></div><p>
|
|
Настройка сервера приложений может быть осуществлена посредством
|
|
редактирования конфигурационного файла
|
|
<code class="filename">standalone-modeshape.xml</code>.
|
|
</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Примечание</h3><p>
|
|
Сведения, изложенные в этом разделе, отражены в соотв.
|
|
конфигурационном
|
|
файле и составе статических модулей
|
|
<a class="link" href="http://projects.ruslan.ru/attachments/download/39/wildfly-10.1.0.Final.zip" target="_top">
|
|
специально подготовленного дистрибутива
|
|
<span class="application">WildFly</span>
|
|
</a>. Его можно взять за основу и внести изменения, необходимые для
|
|
настройки на конкретные условия применения (в частности, указать
|
|
логины/пароли для подключения к источникам данных
|
|
<a class="glossterm" href="#ab-dbms"><em class="glossterm"><a class="glossterm" href="#ab-dbms" title="СУБД">СУБД</a></em></a>,
|
|
<a class="glossterm" href="#ab-ldap"><em class="glossterm"><a class="glossterm" href="#ab-ldap" title="LDAP">LDAP</a></em></a>).
|
|
</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="wildfly-datasource-configuration"></a>3.2.1.1. Настройка источников данных</h4></div></div></div><p>
|
|
В конфигурацию сервера приложений
|
|
<span class="application">WildFly</span>
|
|
требуется включить как минимум один источник данных,
|
|
предназначенный для
|
|
хранения ресурсов
|
|
<span class="application">Руслан-Нео</span>. Следует обратить внимание на то, что настройка источника
|
|
данных
|
|
предусматривает установку
|
|
<a class="glossterm" href="#ab-jdbc"><em class="glossterm"><a class="glossterm" href="#ab-jdbc" title="JDBC">JDBC</a></em></a>
|
|
драйвера
|
|
<a class="glossterm" href="#ab-dbms"><em class="glossterm"><a class="glossterm" href="#ab-dbms" title="СУБД">СУБД</a></em></a>, которая будет использоваться для хранения данных. Подойдёт
|
|
любая
|
|
<a class="glossterm" href="#ab-dbms"><em class="glossterm"><a class="glossterm" href="#ab-dbms" title="СУБД">СУБД</a></em></a>, поддерживающая транзакции.
|
|
</p><p>
|
|
Если планируется миграция данных из
|
|
<a class="glossterm" href="#ab-abis"><em class="glossterm"><a class="glossterm" href="#ab-abis" title="АБИС">АБИС</a></em></a>
|
|
<span class="application">"Руслан"</span>, то потребуется установка
|
|
<a class="glossterm" href="#ab-jdbc"><em class="glossterm"><a class="glossterm" href="#ab-jdbc" title="JDBC">JDBC</a></em></a>
|
|
драйвера
|
|
<span class="application">Oracle</span>
|
|
и определение источника библиотечных данных
|
|
<span class="application">Руслан</span>, из которого будет осуществляться миграция данных.
|
|
</p><p>
|
|
Требуемые JDBC драйверы желательно устанавливать как статические
|
|
модули
|
|
<span class="application">WildFly</span>.
|
|
</p><p>
|
|
Пример результата настройки источников библиотечных данных,
|
|
отражённого
|
|
в конфигурационном файле сервера приложений
|
|
<span class="application">WildFly</span>, приведён в
|
|
<a class="link" href="#app-1" title="Приложение 1. Конфигурационный файл сервера приложений WildFly">Приложении 1</a>.
|
|
</p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Важно</h3><p>
|
|
Атрибут <code class="literal">jta</code> в определении источника данных
|
|
должен иметь значение <code class="literal">false</code>.
|
|
</p></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="jcr-configuration"></a>3.2.1.2. Настройка хранилища данных</h4></div></div></div><p>
|
|
В качестве хранилища используется репозиторий контента (
|
|
<a class="glossterm" href="#ab-jcr"><em class="glossterm"><a class="glossterm" href="#ab-jcr" title="JCR">JCR</a></em></a>)
|
|
<span class="application">ModeShape</span>, который устанавливается в виде
|
|
<a class="glossterm" href="#term-wildfly-static-module"><em class="glossterm"><a class="glossterm" href="#term-wildfly-static-module" title="Статический модуль WildFly">
|
|
статического модуля
|
|
</a></em></a>
|
|
<span class="application">WildFly</span>. Хранилище определяется в конфигурационном файле
|
|
<code class="filename">standalone-modeshape.xml</code>
|
|
в разделе подсистемы
|
|
<span class="application">ModeShape</span>. Данные могут храниться как на файловой системе, так и в
|
|
источниках
|
|
данных
|
|
<a class="glossterm" href="#ab-dbms"><em class="glossterm"><a class="glossterm" href="#ab-dbms" title="СУБД">СУБД</a></em></a>. Рекомендуется использование
|
|
<a class="glossterm" href="#ab-dbms"><em class="glossterm"><a class="glossterm" href="#ab-dbms" title="СУБД">СУБД</a></em></a>. Пример описания репозитория, включающий определение необходимых для работы индексов, приведён в
|
|
<a class="link" href="#app-1" title="Приложение 1. Конфигурационный файл сервера приложений WildFly">Приложении 1.</a>
|
|
</p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Важно</h3><p>
|
|
При первом запуске
|
|
<span class="application">WilfFly</span>
|
|
определения индексов для хранилища следует закомментировать и
|
|
включить
|
|
их при последующих запусках
|
|
<span class="application">WildFly</span>.
|
|
</p></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="security-domains-configuration"></a>3.2.1.3. Настройка доменов безопасности</h4></div></div></div><p>
|
|
В
|
|
<a class="link" href="https://docs.jboss.org/author/display/WFLY10/Admin%20Guide.html#91947111_AdminGuide-SecuritySubsystemConfiguration" target="_top">
|
|
подсистему безопасности сервера приложений
|
|
<span class="application"> WildFly</span>
|
|
</a>
|
|
необходимо добавить два домена безопасности с именами
|
|
<code class="literal">modeshape-security</code>
|
|
и
|
|
<code class="literal">sp</code>. Первый используется провайдером идентификации, второй -
|
|
Web-интерфейсом ресурсов и другими серверными компонетами
|
|
<a class="glossterm" href="#ab-abis"><em class="glossterm"><a class="glossterm" href="#ab-abis" title="АБИС">АБИС</a></em></a>
|
|
<span class="application">"Руслан-Нео"</span>.
|
|
</p><p>
|
|
Аутентификацию в домене безопасности
|
|
<code class="literal">modeshape-security</code>
|
|
необходимо настроить с использованием любого подходящего модуля
|
|
входа.
|
|
Именно этот домен безопасности будет использоваться при
|
|
идентификации
|
|
пользователей
|
|
<a class="glossterm" href="#ab-abis"><em class="glossterm"><a class="glossterm" href="#ab-abis" title="АБИС">АБИС</a></em></a>
|
|
<span class="application">"Руслан-Нео"</span>
|
|
любых категорий. Выбор модуля входа осуществляется в зависимости
|
|
от
|
|
выбранного механизма хранения учётных данных пользователей.
|
|
<span class="strong"><strong>
|
|
Таким образом, одним из первоочередных вопросов, требующих
|
|
решения при
|
|
установке
|
|
<a class="glossterm" href="#ab-abis"><em class="glossterm"></em></a></strong><a class="glossterm" href="#ab-abis" title="АБИС">АБИС</a><strong><a class="glossterm" href="#ab-abis"><em class="glossterm"></em></a>
|
|
<span class="application">"Руслан-Нео"</span>, является вопрос выбора механизма хранения учётных данных
|
|
пользователей.
|
|
</strong></span>
|
|
<a class="glossterm" href="#ab-abis"><em class="glossterm"><a class="glossterm" href="#ab-abis" title="АБИС">АБИС</a></em></a>
|
|
<span class="application">"Руслан-Нео"</span>
|
|
обеспечивает полный цикл управления учётными данными
|
|
пользователей (не
|
|
только аутентификация, но и создание, удаление,
|
|
модификация учётных
|
|
записей) только для механизмов хранения,
|
|
использующих
|
|
реляционные
|
|
<a class="glossterm" href="#ab-db"><em class="glossterm"><a class="glossterm" href="#ab-db" title="БД">БД</a></em></a>
|
|
или службы
|
|
<a class="glossterm" href="#ab-ldap"><em class="glossterm"><a class="glossterm" href="#ab-ldap" title="LDAP">LDAP</a></em></a>.
|
|
</p><p>
|
|
При необходимости осуществления аутентификации с использованием
|
|
нескольких источников (в т.ч. и разнородных), в конфигурацию
|
|
домена
|
|
безопасности можно включить несколько экземпляров модулей
|
|
входа с
|
|
различными параметрами. Настройки должны обеспечивать
|
|
определение ролей
|
|
пользователя, а также атрибута, указывающего на
|
|
принадлежность
|
|
пользователя к организации (сигла библиотеки) -
|
|
см.
|
|
<a class="xref" href="#security-domains" title="1.3. Домены безопасности">Домены безопасности</a>.
|
|
</p><p>
|
|
Аутентификацию в домене безопасности
|
|
<code class="literal">sp</code>
|
|
необходимо настроить с использованием модуля входа
|
|
<code class="literal">SAML2</code>
|
|
(класс
|
|
<code class="literal">org.picketlink.identity.federation.bindings.wildfly.SAML2LoginModule
|
|
</code>).
|
|
</p><p>
|
|
Пример результата настройки доменов безопасности, отражённого в
|
|
конфигурационном файле сервера приложений WildFly, приведён в
|
|
<a class="link" href="#app-1" title="Приложение 1. Конфигурационный файл сервера приложений WildFly">Приложении 1</a>.
|
|
</p><div class="section"><div class="titlepage"><div><div><h5 class="title"><a name="roles-configuration"></a>3.2.1.3.1. Роли (группы) пользователей</h5></div></div></div><p>В <a class="glossterm" href="#ab-abis"><em class="glossterm"><a class="glossterm" href="#ab-abis" title="АБИС">АБИС</a></em></a>
|
|
<span class="application">"Руслан-Нео"</span> определены следующие роли пользователей:
|
|
</p><div class="table"><a name="d0e493"></a><p class="title"><b>Таблица 3-1. Роли пользователей <a class="glossterm" href="#ab-abis"><em class="glossterm"><a class="glossterm" href="#ab-abis" title="АБИС">АБИС</a></em></a> <span class="application">"Руслан-Нео"</span></b></p><div class="table-contents"><table class="table" summary="Роли пользователей АБИС "Руслан-Нео"" border="1"><colgroup><col align="left" class="col1"><col align="left" class="col2"></colgroup><thead><tr><th align="center">Роль</th><th align="center">Описание</th></tr></thead><tbody><tr><td align="left">
|
|
<code class="literal">ruslan-admin</code>
|
|
</td><td align="left">Администратор с наивысшими полномочиями (создание/удаление
|
|
<a class="glossterm" href="#ab-db"><em class="glossterm"><a class="glossterm" href="#ab-db" title="БД">БД</a></em></a>, миграция данных и т.д.).
|
|
При создании <a class="glossterm" href="#ab-db"><em class="glossterm"><a class="glossterm" href="#ab-db" title="БД">БД</a></em></a>, эта роль
|
|
автоматически получает все полномочия по отношению к этой
|
|
<a class="glossterm" href="#ab-db"><em class="glossterm"><a class="glossterm" href="#ab-db" title="БД">БД</a></em></a>.
|
|
</td></tr><tr><td align="left">
|
|
<code class="literal">ruslan-circ</code>
|
|
</td><td align="left">Обычный пользователь с полномочиями по отношению к ресурсам <a class="glossterm" href="#ab-abis"><em class="glossterm"><a class="glossterm" href="#ab-abis" title="АБИС">АБИС</a></em></a>,
|
|
определяемыми списками контроля доступа для этих ресурсов. Носитель этой роли автоматически получает все полномочия
|
|
по отношению к записям, отражающим запросы на бронирование от читателей.
|
|
</td></tr><tr><td align="left">
|
|
<code class="literal">ruslan-user</code>
|
|
</td><td align="left">Обычный пользователь с полномочиями по отношению к ресурсам
|
|
<a class="glossterm" href="#ab-abis"><em class="glossterm"><a class="glossterm" href="#ab-abis" title="АБИС">АБИС</a></em></a>, определяемыми списками
|
|
контроля доступа для этих ресурсов.
|
|
</td></tr><tr><td align="left">
|
|
<code class="literal">admin</code>
|
|
</td><td align="left">Администратор репозитория.
|
|
</td></tr><tr><td align="left">
|
|
<code class="literal">readwrite</code>
|
|
</td><td align="left">Пользователь репозитория с правами записи и чтения данных.
|
|
</td></tr><tr><td align="left">
|
|
<code class="literal">readonly</code>
|
|
</td><td align="left">Пользователь репозитория с правом чтения данных.
|
|
</td></tr><tr><td align="left">
|
|
<code class="literal">connect</code>
|
|
</td><td align="left">Пользователь репозитория с правом доступа к интерфейсу <a class="glossterm" href="#ab-webdav"><em class="glossterm"><a class="glossterm" href="#ab-webdav" title="WebDAV">WebDAV</a></em></a>
|
|
<span class="application">ModeShape</span>.
|
|
</td></tr></tbody></table></div></div><p><br class="table-break">
|
|
</p><p>Анонимный пользователь автоматически получает роль <code class="literal">readonly</code>.</p><p>Следует иметь в виду, что при помощи указанных ролей осуществляется грубая обобщённая настройка прав доступа.
|
|
Тонкая настройка прав доступа осуществляется при помощи списков контроля доступа, относящихся к конкретным ресурсам.</p><p>Указанные роли создаются автоматически в случае отсутствия соответствующих записей в используемом механизме хранения.</p><p>Также для нормальной работы серверной части в используемом домене безопасности требуется наличие учётной записи системного пользователя,
|
|
входящего в группы <code class="literal">ruslan-admin</code>, <code class="literal">admin</code>, <code class="literal">readwrite</code> и <code class="literal">connect</code>.
|
|
При необходимости такую учётную запись следует создать. Эта учётная запись создаётся автоматически в случае отсутствия учётных записей
|
|
в используемом механизме хранения.</p></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="batch-job-configuration"></a>3.2.1.4. Настройка подсистемы пакетных заданий</h4></div></div></div><p>Для успешного восстановления пакетных заданий (например, миграция данных из
|
|
<a class="glossterm" href="#ab-abis"><em class="glossterm"><a class="glossterm" href="#ab-abis" title="АБИС">АБИС</a></em></a> <span class="application">"Руслан"</span>) после сбоев,
|
|
подсистему пакетных заданий следует настроить таким образом, чтобы состояние выполнения пакетных
|
|
заданий фиксировалось в постоянной памяти. В качестве такого механизма можно использовать
|
|
источник данных <a class="glossterm" href="#ab-db"><em class="glossterm"><a class="glossterm" href="#ab-db" title="БД">СУБД</a></em></a>, выделенный для хранилища данных
|
|
или отдельный источник данных. Для этого в конфигурации подсистемы
|
|
<code class="literal">batch-jberet</code> в <code class="filename">standalone-modeshape.xml</code> следует определить хранилище с
|
|
именем <code class="literal">dbb</code> и использующим источник данных <a class="glossterm" href="#ab-db"><em class="glossterm"><a class="glossterm" href="#ab-db" title="БД">СУБД</a></em></a>:
|
|
</p><div class="informalexample"><pre class="programlisting"><subsystem xmlns="urn:jboss:domain:batch-jberet:1.0">
|
|
...
|
|
<job-repository name="dbb">
|
|
<jdbc data-source="neo"/>
|
|
</job-repository>
|
|
...
|
|
</subsystem>
|
|
</pre></div><p>
|
|
</p><p>Следует обратить внимание на то, что <a class="glossterm" href="#ab-jndi"><em class="glossterm"><a class="glossterm" href="#ab-jndi" title="JNDI">JNDI</a></em></a>-имя источника данных в
|
|
этом случае приводится в краткой форме.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="jms-configuration"></a>3.2.1.5. Настройка подсистемы очередей сообщений</h4></div></div></div><p>В конфигурации подсистемы очередей сообщений <code class="literal">messaging-activemq</code>
|
|
в <code class="filename">standalone-modeshape.xml</code> следует определить как минимум следующие очереди сообщений
|
|
<code class="literal">CreateUpdateRecordTopic</code>, <code class="literal">HoldExpirationTopic</code>,
|
|
<code class="literal">WSOperationsTopic</code> и <code class="literal">OverdueTopic</code>:
|
|
</p><div class="informalexample"><pre class="programlisting"><subsystem xmlns="urn:jboss:domain:messaging-activemq:1.0">
|
|
<server name="default">
|
|
...
|
|
<jms-topic name="CreateUpdateRecordTopic"
|
|
entries="java:/jms/topic/ruslan/createUpdateRecord
|
|
java:jboss/exported/jms/topic/ruslan/createUpdateRecord"/>
|
|
<jms-topic name="HoldExpirationTopic"
|
|
entries="java:/jms/topic/ruslan/holdExpiration
|
|
java:jboss/exported/jms/topic/ruslan/holdExpiration"/>
|
|
<jms-topic name="WSOperationsTopic"
|
|
entries="java:/jms/topic/ruslan/wsOperations
|
|
java:jboss/exported/jms/topic/ruslan/wsOperations"/>
|
|
<jms-topic name="OverdueTopic"
|
|
entries="java:/jms/topic/ruslan/overdue
|
|
java:jboss/exported/jms/topic/ruslan/overdue"/>
|
|
...
|
|
</server>
|
|
</subsystem>
|
|
</pre></div><p>
|
|
</p><p>Следует обратить внимание на то, что <a class="glossterm" href="#ab-jndi"><em class="glossterm"><a class="glossterm" href="#ab-jndi" title="JNDI">JNDI</a></em></a>-имя источника данных в
|
|
этом случае приводится в краткой форме.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="timer-configuration"></a>3.2.1.6. Настройка хранилища таймеров</h4></div></div></div><p>В качестве хранилища данных таймеров рекомендуется использовать источник данных
|
|
<a class="glossterm" href="#ab-db"><em class="glossterm"><a class="glossterm" href="#ab-db" title="БД">СУБД</a></em></a>:
|
|
</p><div class="informalexample"><pre class="programlisting"><subsystem xmlns="urn:jboss:domain:ejb3:4.0">
|
|
...
|
|
<timer-service
|
|
thread-pool-name="default"
|
|
default-data-store="db-store">
|
|
<data-stores>
|
|
<file-data-store
|
|
name="default-file-store"
|
|
path="timer-service-data"
|
|
relative-to="jboss.server.data.dir"/>
|
|
<database-data-store
|
|
name="db-store"
|
|
datasource-jndi-name="java:jboss/datasources/neo"
|
|
database="oracle"
|
|
refresh-interval="0"/>
|
|
</data-stores>
|
|
</timer-service>
|
|
...
|
|
</subsystem>
|
|
</pre></div><p>
|
|
</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="solr-configuration"></a>3.2.2. Настройка сервера Solr</h3></div></div></div><p>После <a class="link" href="https://cwiki.apache.org/confluence/display/solr/Installing+Solr" target="_top">установки сервера
|
|
<span class="application">Solr</span></a> в конфигурационный файл
|
|
<code class="filename">server/solr/configsets/data_driven_schema_configs/conf/managed-schema</code> необходимо добавить
|
|
следующие определения полей и типа полей, а также переопределить тип поля <code class="literal">text_general</code>:
|
|
</p><div class="informalexample"><pre class="programlisting"><field name="collection" type="strings"/>
|
|
<dynamicField
|
|
name="*_dtr"
|
|
type="date_range"
|
|
indexed="true"
|
|
stored="true"/>
|
|
<fieldType
|
|
name="date_range"
|
|
class="solr.DateRangeField"/>
|
|
...
|
|
<fieldType
|
|
name="text_general"
|
|
class="solr.TextField"
|
|
positionIncrementGap="100"
|
|
multiValued="true">
|
|
<analyzer type="index">
|
|
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
|
|
<filter class="solr.StopFilterFactory"
|
|
ignoreCase="true"
|
|
words="stopwords.txt" />
|
|
<filter class="solr.SynonymFilterFactory"
|
|
synonyms="synonyms.txt"
|
|
ignoreCase="true"
|
|
expand="false"/>
|
|
<filter class="solr.WordDelimiterFilterFactory"
|
|
generateWordParts="1"
|
|
generateNumberParts="1"
|
|
catenateWords="1"
|
|
catenateNumbers="1"
|
|
catenateAll="0"
|
|
splitOnCaseChange="0"/>
|
|
<filter class="solr.LowerCaseFilterFactory"/>
|
|
</analyzer>
|
|
<analyzer type="query">
|
|
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
|
|
<filter class="solr.StopFilterFactory"
|
|
ignoreCase="true"
|
|
words="stopwords.txt" />
|
|
<filter class="solr.SynonymFilterFactory"
|
|
synonyms="synonyms.txt"
|
|
ignoreCase="true"
|
|
expand="true"/>
|
|
<filter class="solr.WordDelimiterFilterFactory"
|
|
generateWordParts="1"
|
|
generateNumberParts="1"
|
|
catenateWords="1"
|
|
catenateNumbers="1"
|
|
catenateAll="0"
|
|
splitOnCaseChange="0"/>
|
|
<filter class="solr.LowerCaseFilterFactory"/>
|
|
</analyzer>
|
|
</fieldType>
|
|
</pre></div><p>
|
|
</p><p>Если требуется нормализация индексов и запросов в соответствии с
|
|
<a class="link" href="http://www.unicode.org/reports/tr30/tr30-4.html" target="_top">Unicode Technical Report 30</a>, то определение поля
|
|
<code class="literal">text_general</code> в <code class="filename">server/solr/configsets/data_driven_schema_configs/conf/managed-schema</code> должно выглядеть следующим образом:
|
|
</p><div class="informalexample"><pre class="programlisting"><fieldType
|
|
name="text_general"
|
|
class="solr.TextField"
|
|
positionIncrementGap="100"
|
|
multiValued="true">
|
|
<analyzer type="index">
|
|
<tokenizer
|
|
class="solr.WhitespaceTokenizerFactory"/>
|
|
<filter
|
|
class="solr.StopFilterFactory"
|
|
ignoreCase="true"
|
|
words="stopwords.txt" />
|
|
<filter
|
|
class="solr.SynonymFilterFactory"
|
|
synonyms="synonyms.txt"
|
|
ignoreCase="true"
|
|
expand="false"/>
|
|
<filter
|
|
class="solr.WordDelimiterFilterFactory"
|
|
generateWordParts="1"
|
|
generateNumberParts="1"
|
|
catenateWords="1"
|
|
catenateNumbers="1"
|
|
catenateAll="0"
|
|
splitOnCaseChange="0"/>
|
|
<filter
|
|
class="solr.ICUFoldingFilterFactory"/>
|
|
<filter
|
|
class="solr.LowerCaseFilterFactory"/>
|
|
</analyzer>
|
|
<analyzer type="query">
|
|
<tokenizer
|
|
class="solr.WhitespaceTokenizerFactory"/>
|
|
<filter
|
|
class="solr.StopFilterFactory"
|
|
ignoreCase="true"
|
|
words="stopwords.txt" />
|
|
<filter
|
|
class="solr.SynonymFilterFactory"
|
|
synonyms="synonyms.txt"
|
|
ignoreCase="true"
|
|
expand="true"/>
|
|
<filter
|
|
class="solr.WordDelimiterFilterFactory"
|
|
generateWordParts="1"
|
|
generateNumberParts="1"
|
|
catenateWords="1"
|
|
catenateNumbers="1"
|
|
catenateAll="0"
|
|
splitOnCaseChange="0"/>
|
|
<filter
|
|
class="solr.ICUFoldingFilterFactory"/>
|
|
<filter
|
|
class="solr.LowerCaseFilterFactory"/>
|
|
</analyzer>
|
|
</fieldType>
|
|
</pre></div><p>
|
|
При этом в <code class="filename">server/solr/configsets/data_driven_schema_configs/conf/solrconfig.xml</code> следует добавить:
|
|
</p><div class="informalexample"><pre class="programlisting">
|
|
<lib
|
|
dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lucene-libs/"
|
|
regex=".*\.jar" />
|
|
<lib
|
|
dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lib/"
|
|
regex=".*\.jar" />
|
|
<lib
|
|
dir="${solr.install.dir:../../../..}/dist/"
|
|
regex="solr-analysis-extras-\d.*\.jar" />
|
|
</pre></div><p>
|
|
</p><p>В конфигурационном файле <code class="filename">solr.in </code>необходимо настроить параметры <em class="parameter"><code>solr.autoSoftCommit.maxTime</code></em>,
|
|
<em class="parameter"><code>solr.autoCommit.maxTime</code></em>, <em class="parameter"><code>-Xmx</code></em> в соответствии с имеющимися вычислительными ресурсами,
|
|
объёмом <a class="glossterm" href="#ab-db"><em class="glossterm"><a class="glossterm" href="#ab-db" title="БД">БД</a></em></a> и нагрузкой. Для начала можно принять
|
|
</p><div class="informalexample"><pre class="programlisting">
|
|
solr.autoSoftCommit.maxTime=1000
|
|
solr.autoCommit.maxTime=10000
|
|
-Xmx2g
|
|
</pre></div><p>
|
|
|
|
</p><p>Запуск сервера необходимо осуществлять в
|
|
<a class="link" href="https://cwiki.apache.org/confluence/display/solr/Getting+Started+with+SolrCloud" target="_top">облачном режиме</a>.</p><p>После запуска сервера необходимо создать базовую коллекцию ruslan:
|
|
</p><div class="informalexample"><pre class="programlisting">
|
|
$ bin/solr create -c ruslan -d data_driven_schema_configs
|
|
</pre></div><p>
|
|
</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idp-configuration"></a>3.2.3. Настройка провайдера идентификации</h3></div></div></div><p>Настройка провайдера идентификации заключается в редактировании
|
|
<a class="link" href="https://docs.jboss.org/author/display/PLINK/Identity%20Provider%20Configuration.html#24838669_IdentityProviderConfiguration-Thepicketlink.xmlconfigurationfile" target="_top">конфигурационного файла
|
|
<code class="filename">WEB-INF/picketlink.xml</code></a>, включённого в <code class="filename">ridp*.war</code>.
|
|
Как минимум, необходимо указать значения параметров <em class="parameter"><code>PicketLinkIDP/IdentityURL</code></em> и
|
|
<em class="parameter"><code>PicketLinkIDP/Trust/Domains</code></em>, зависящие от конкретных условий эксплуатации.
|
|
В первом из них необходимо указать адрес провайдера идентификации
|
|
(например, <code class="literal">https://host.domain/ridp/</code>). Во втором - список доменов, разделённых запятой,
|
|
с которыми установлены доверительные отношения (например, <code class="literal">domain1,domain2</code>).
|
|
</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="neo-base-configuration"></a>3.2.4. Настройка базовых сервисов</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e793"></a>3.2.4.1. Общая настройка</h4></div></div></div><p>Общая настройка заключается в редактировании конфигурации подсистемы <code class="literal">naming</code> в <code class="filename">standalone-modeshape.xml</code>:
|
|
</p><div class="informalexample"><pre class="programlisting"><subsystem xmlns="urn:jboss:domain:naming:2.0">
|
|
<bindings>
|
|
<simple
|
|
name="java:global/ruslan/config/19013582/requestIdGeneratorName"
|
|
value="db" type="java.lang.String"/>
|
|
<simple
|
|
name="java:global/ruslan/config/00000000/solrURL"
|
|
value="localhost:9983" type="java.lang.String"/>
|
|
<simple
|
|
name="java:global/ruslan/config/00000000/repository"
|
|
value="java:/jcr/neo" type="java.lang.String"/>
|
|
<simple
|
|
name="java:global/ruslan/config/00000000/license"
|
|
value="file:///opt/wildfly/license.cer" type="java.net.URL"/>
|
|
<simple
|
|
name="java:global/ruslan/config/defaultOrgId"
|
|
value="00000000" type="java.lang.String"/>
|
|
<simple
|
|
name="java:global/ruslan/config/defaultRecordSchemaName"
|
|
value="ruslan" type="java.lang.String"/>
|
|
</bindings>
|
|
<remote-naming/>
|
|
</subsystem></pre></div><p>
|
|
</p><p>В таблице 3-2 представлены настраиваемые общие параметры, их JNDI-имена, примеры значений.</p><div class="table"><a name="d0e811"></a><p class="title"><b>Таблица 3-2. Настраиваемые общие параметры базовых сервисов <a class="glossterm" href="#ab-abis"><em class="glossterm"><a class="glossterm" href="#ab-abis" title="АБИС">АБИС</a></em></a> <span class="application">"Руслан-Нео"</span></b></p><div class="table-contents"><table class="table" summary="Настраиваемые общие параметры базовых сервисов АБИС "Руслан-Нео"" width="100%" border="1"><colgroup><col align="left" class="col1"><col align="left" class="col2"><col align="left" class="col3"></colgroup><thead><tr><th align="center"><a class="glossterm" href="#ab-jndi"><em class="glossterm"><a class="glossterm" href="#ab-jndi" title="JNDI">JNDI</a></em></a>-имя</th><th align="center">Назначение</th><th align="center">Значение</th></tr></thead><tbody><tr><td align="left"><code class="literal">java:global/ruslan/config/{сигла библиотеки}/requestIdGeneratorName</code></td><td align="left">Идентификатор генератора идентификаторов запросов на бронирование</td><td align="left">
|
|
<p><code class="literal">db</code> - генератор последовательных чисел</p>
|
|
<p><code class="literal">uuid</code> - генератор уникальных идентификаторов</p>
|
|
</td></tr><tr><td align="left"><code class="literal">java:global/ruslan/config/{сигла библиотеки}/solrURL</code></td><td align="left">Строка подключения к <span class="application">ZooKeeper</span> (<span class="application">Solr</span>)</td><td align="left"><code class="literal">localhost:9983</code></td></tr><tr><td align="left"><code class="literal">java:global/ruslan/config/{сигла библиотеки}/repository</code></td><td align="left"><a class="glossterm" href="#ab-jndi"><em class="glossterm"><a class="glossterm" href="#ab-jndi" title="JNDI">JNDI-имя хранилища</a></em></a></td><td align="left"><code class="literal">java:/jcr/neo</code></td></tr><tr><td align="left"><code class="literal">java:global/ruslan/config/{сигла библиотеки}/license</code></td><td align="left"><a class="glossterm" href="#ab-url"><em class="glossterm"><a class="glossterm" href="#ab-url" title="URL">URL</a></em></a> лицензионного файла</td><td align="left"><code class="literal">file:///opt/wildfly/license.cer</code></td></tr><tr><td align="left"><code class="literal">java:global/ruslan/config/defaultOrgId</code></td><td align="left">Сигла библиотеки по умолчанию</td><td align="left"><code class="literal">00000000</code></td></tr><tr><td align="left"><code class="literal">java:global/ruslan/config/defaultRecordSchemaName</code></td><td align="left">Идентификатор схемы записей по умолчанию</td><td align="left"><code class="literal">ruslan</code></td></tr></tbody></table></div></div><br class="table-break"></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="neo-subsystem-configuration"></a>3.2.4.2. Настройка подсистем</h4></div></div></div><p>Некоторые подсистемы базовых сервисов настраиваются при помощи дескриптора развёртывания приложения
|
|
<code class="filename">idx-jcr-ejb.jar/META-INF/ejb-jar.xml</code> и иных дескрипторов, включённых в <code class="filename">rneo*.ear</code>.</p><div class="section"><div class="titlepage"><div><div><h5 class="title"><a name="d0e917"></a>3.2.4.2.1. Настройка параметров идентификации системного пользователя <a class="glossterm" href="#ab-abis"><em class="glossterm"><a class="glossterm" href="#ab-abis" title="АБИС">АБИС</a></em></a> <span class="application">"Руслан-Нео"</span></h5></div></div></div><p>В таблице 3-3 представлены настраиваемые параметры подсистемы, наименования соответствующих записей окружения,
|
|
которые приводятся в дескрипторе развёртывания <code class="filename">idx-jcr-ejb.jar/META-INF/ejb-jar.xml</code>, примеры значений.</p><div class="table"><a name="d0e930"></a><p class="title"><b>Таблица 3-3. Настраиваемые параметры идентификации системного пользователя <a class="glossterm" href="#ab-abis"><em class="glossterm"><a class="glossterm" href="#ab-abis" title="АБИС">АБИС</a></em></a> <span class="application">"Руслан-Нео"</span></b></p><div class="table-contents"><table class="table" summary="Настраиваемые параметры идентификации системного пользователя АБИС "Руслан-Нео"" border="1"><colgroup><col><col><col></colgroup><thead><tr><th align="center">Наименование записи окружения</th><th align="center">Назначение</th><th align="center">Значение</th></tr></thead><tbody><tr><td align="left"><code class="literal">{сигла библиотеки}/repoLogin</code></td><td align="left">Идентификатор (имя входа) системного пользователя <a class="glossterm" href="#ab-abis"><em class="glossterm"><a class="glossterm" href="#ab-abis" title="АБИС">АБИС</a></em></a> <span class="application">"Руслан-Нео"</span></td><td align="left"><code class="literal">ruslan</code></td></tr><tr><td align="left"><code class="literal">{сигла библиотеки}/repoPassword</code></td><td align="left">Пароль системного пользователя <a class="glossterm" href="#ab-abis"><em class="glossterm"><a class="glossterm" href="#ab-abis" title="АБИС">АБИС</a></em></a> <span class="application">"Руслан-Нео"</span></td><td align="left"><code class="literal">changeit</code></td></tr></tbody></table></div></div><br class="table-break"></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a name="batch-schedule"></a>3.2.4.2.2. Настройка запуска пакетных заданий по расписанию</h5></div></div></div><p>Автоматический запуск пакетных заданий по расписанию определяется при помощи элементов
|
|
<code class="literal">timer</code> для <a class="glossterm" href="#ab-ejb"><em class="glossterm"><a class="glossterm" href="#ab-ejb" title="EJB">EJB</a></em></a> <span class="application">JobScheduler</span>
|
|
в дескрипторе развёртывания <code class="filename">idx-jcr-ejb.jar/META-INF/ejb-jar.xml</code>:
|
|
</p><div class="informalexample"><pre class="programlisting"><session>
|
|
<ejb-name>JobScheduler</ejb-name>
|
|
<session-type>Stateless</session-type>
|
|
<timer>
|
|
<schedule>
|
|
<minute>0</minute>
|
|
<hour>19</hour>
|
|
<day-of-week>1-5</day-of-week>
|
|
</schedule>
|
|
<timeout-method>
|
|
<method-name>timeout</method-name>
|
|
<method-params>
|
|
<method-param>javax.ejb.Timer</method-param>
|
|
</method-params>
|
|
</timeout-method>
|
|
<info>ExportRecordsISO2709EBOOKS:19013582</info>
|
|
</timer>
|
|
<timer>
|
|
<schedule>
|
|
<minute>0</minute>
|
|
<hour>1</hour>
|
|
<day-of-week>6</day-of-week>
|
|
</schedule>
|
|
<timeout-method>
|
|
<method-name>timeout</method-name>
|
|
<method-params>
|
|
<method-param>javax.ejb.Timer</method-param>
|
|
</method-params>
|
|
</timeout-method>
|
|
<info>ExportRecordsISO2709BOOKS:19013582</info>
|
|
</timer>
|
|
</session>
|
|
</pre></div><p>
|
|
</p><p>В элементе <code class="literal">info</code> указываются наименование пакетного задания и сигла библиотеки, разделённые двоеточием.
|
|
Подробности настройки расписания приводятся в главе 13 спецификации <a class="link" href="https://jcp.org/en/jsr/detail?id=345" target="_top">JSR-345</a>.</p><p>Соответствующие определения пакетных заданий должны быть размещены в <code class="filename">idx-jcr-ejb.jar/META-INF/batch-jobs/</code>,
|
|
а используемые этими заданиями пакетные артефакты необходимо указать в <code class="filename">idx-jcr-ejb.jar/META-INF/batch.xml</code>.
|
|
Пакетные задания и артефакты определяются в соответствии с требованиями спецификации
|
|
<a class="link" href="https://jcp.org/en/jsr/detail?id=352" target="_top">JSR-352</a>.</p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a name="d0e1016"></a>3.2.4.2.3. Настройка сервера Z39.50</h5></div></div></div><p>В таблице 3-4 представлены настраиваемые параметры сервера Z39.50,
|
|
которые приводятся в дескрипторе развёртывания <code class="filename">idx-jcr-ejb.jar/META-INF/ejb-jar.xml</code>, примеры значений.</p><div class="table"><a name="d0e1024"></a><p class="title"><b>Таблица 3-4. Настраиваемые параметры сервера Z39.50</b></p><div class="table-contents"><table class="table" summary="Настраиваемые параметры сервера Z39.50" border="1"><colgroup><col><col><col></colgroup><thead><tr><th align="center">Наименование параметра</th><th align="center">Назначение</th><th align="center">Значение</th></tr></thead><tbody><tr><td align="left"><code class="literal">ServerName</code></td><td align="left">Сетевой адрес, по которому будет осуществляться взаимодействие с сервером Z39.50</td><td align="left"><code class="literal">0.0.0.0</code></td></tr><tr><td align="left"><code class="literal">PortNumber</code></td><td align="left">Номер порта, по которому будет осуществляться взаимодействие с сервером Z39.50</td><td align="left"><code class="literal">2100</code></td></tr><tr><td align="left"><code class="literal">OrgId</code></td><td align="left">Сигла библиотеки</td><td align="left"><code class="literal">00000000</code></td></tr></tbody></table></div></div><br class="table-break"><p>Фрагмент дескриптора развёртывания <code class="filename">idx-jcr-ejb.jar/META-INF/ejb-jar.xml</code>,
|
|
связанный с настройка параметров сервера Z39.50:
|
|
</p><div class="informalexample"><pre class="programlisting"><message-driven>
|
|
<display-name>Z39.50 Target Bean</display-name>
|
|
<ejb-name>ZTarget</ejb-name>
|
|
<ejb-class>com.ols.ruslan.neo.z3950.server.ZTarget</ejb-class>
|
|
<messaging-type>com.ols.z3950.server.ZMessageListener</messaging-type>
|
|
<transaction-type>Container</transaction-type>
|
|
<activation-config>
|
|
<activation-config-property>
|
|
<activation-config-property-name>ServerName</activation-config-property-name>
|
|
<activation-config-property-value>0.0.0.0</activation-config-property-value>
|
|
</activation-config-property>
|
|
<activation-config-property>
|
|
<activation-config-property-name>PortNumber</activation-config-property-name>
|
|
<activation-config-property-value>2100</activation-config-property-value>
|
|
</activation-config-property>
|
|
<activation-config-property>
|
|
<activation-config-property-name>OrgId</activation-config-property-name>
|
|
<activation-config-property-value>00000000</activation-config-property-value>
|
|
</activation-config-property>
|
|
</activation-config>
|
|
...
|
|
</message-driven></pre></div><p>
|
|
</p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a name="d0e1074"></a>3.2.4.2.4. Настройка сервера 3M™ <a class="glossterm" href="#ab-sip"><em class="glossterm"><a class="glossterm" href="#ab-sip" title="SIP">SIP</a></em></a> v. 2.00</h5></div></div></div><p>В таблице 3-5 представлены настраиваемые параметры сервера 3M™ <a class="glossterm" href="#ab-sip"><em class="glossterm"><a class="glossterm" href="#ab-sip" title="SIP">SIP</a></em></a> v. 2.00,
|
|
которые приводятся в дескрипторе развёртывания <code class="filename">idx-jcr-ejb.jar/META-INF/ejb-jar.xml</code>, примеры значений.</p><div class="table"><a name="d0e1088"></a><p class="title"><b>Таблица 3-5. Настраиваемые параметры сервера 3M™ <a class="glossterm" href="#ab-sip"><em class="glossterm"><a class="glossterm" href="#ab-sip" title="SIP">SIP</a></em></a> v. 2.00</b></p><div class="table-contents"><table class="table" summary="Настраиваемые параметры сервера 3M™ SIP v. 2.00" border="1"><colgroup><col><col><col></colgroup><thead><tr><th align="center">Наименование параметра</th><th align="center">Назначение</th><th align="center">Значение</th></tr></thead><tbody><tr><td align="left"><code class="literal">ServerName</code></td><td align="left">Сетевой адрес, по которому будет осуществляться взаимодействие с сервером 3M™ <a class="glossterm" href="#ab-sip"><em class="glossterm"><a class="glossterm" href="#ab-sip" title="SIP">SIP</a></em></a> v. 2.00</td><td align="left"><code class="literal">0.0.0.0</code></td></tr><tr><td align="left"><code class="literal">PortNumber</code></td><td align="left">Номер порта, по которому будет осуществляться взаимодействие с сервером 3M™ <a class="glossterm" href="#ab-sip"><em class="glossterm"><a class="glossterm" href="#ab-sip" title="SIP">SIP</a></em></a> v. 2.00</td><td align="left"><code class="literal">12345</code></td></tr><tr><td align="left"><code class="literal">OrgId</code></td><td align="left">Сигла библиотеки</td><td align="left"><code class="literal">00000000</code></td></tr></tbody></table></div></div><br class="table-break"><p>Фрагмент дескриптора развёртывания <code class="filename">idx-jcr-ejb.jar/META-INF/ejb-jar.xml</code>,
|
|
связанный с настройка параметров сервера 3M™ <a class="glossterm" href="#ab-sip"><em class="glossterm"><a class="glossterm" href="#ab-sip" title="SIP">SIP</a></em></a> v. 2.00:
|
|
</p><div class="informalexample"><pre class="programlisting"><message-driven>
|
|
<display-name>SIP ACS Bean</display-name>
|
|
<ejb-name>SIPACS</ejb-name>
|
|
<ejb-class>com.ols.ruslan.neo.sip.server.SIPACS</ejb-class>
|
|
<messaging-type>com.ols.sip.SIPMessageListener</messaging-type>
|
|
<transaction-type>Container</transaction-type>
|
|
<activation-config>
|
|
<activation-config-property>
|
|
<activation-config-property-name>ServerName</activation-config-property-name>
|
|
<activation-config-property-value>0.0.0.0</activation-config-property-value>
|
|
</activation-config-property>
|
|
<activation-config-property>
|
|
<activation-config-property-name>SoTimeout</activation-config-property-name>
|
|
<activation-config-property-value>3000</activation-config-property-value>
|
|
</activation-config-property>
|
|
<activation-config-property>
|
|
<activation-config-property-name>OrgId</activation-config-property-name>
|
|
<activation-config-property-value>0000000</activation-config-property-value>
|
|
</activation-config-property>
|
|
</activation-config>
|
|
</message-driven></pre></div><p>
|
|
</p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a name="d0e1150"></a>3.2.4.2.5. Настройка параметров подсистемы управления пользователями</h5></div></div></div><p>Подсистема управления пользователями настраивается на конкретный механизм хранения учётных данных при помощи дескриптора
|
|
<code class="filename">idx-jcr-ejb.jar/META-INF/picketlink.xml</code>. В комплект поставки в качестве образцов включаются дескрипторы
|
|
<code class="filename">picketlink-LDAP.xml</code>, <code class="filename">picketlink-AD.xml</code> и <code class="filename">picketlink-JPA.xml</code>,
|
|
для интеграции с механизмами хранения учётных данных, использующими <a class="glossterm" href="#ab-ldap"><em class="glossterm"><a class="glossterm" href="#ab-ldap" title="LDAP">LDAP</a></em></a>,
|
|
<span class="application">Active Directory</span> и реляционные <a class="glossterm" href="#ab-dbms"><em class="glossterm"><a class="glossterm" href="#ab-dbms" title="СУБД">СУБД</a></em></a> соответственно.
|
|
Необходимо перенести в <code class="filename">picketlink.xml</code> требуемую конфигурацию и изменить параметры в соответствии с конкретными
|
|
условиями применения (адреса сервисов, идентификаторы источников данных, логины и пароли пользователей, от имени которых будет
|
|
вестись работа с механизмами хранения учётных данных и т.п.).</p><p>При использовании механизма хранения учётных данных, основанного на реляционной <a class="glossterm" href="#ab-dbms"><em class="glossterm"><a class="glossterm" href="#ab-dbms" title="СУБД">СУБД</a></em></a>,
|
|
в дескрипторе <code class="filename">idx-jcr-ejb.jar/META-INF/persistence.xml</code> следует определить используемые реляционные сущности
|
|
(элементы <code class="literal">class</code>) и источник данных (элемент <code class="literal">non-jta-data-source</code>). В комплект поставки входит
|
|
<code class="filename">persistence.xml</code> с типовыми сущностями, обеспечивающими хранение учётных записей пользователей, их роли и пароли.</p><p>В состав подсистемы управления пользователями входит компонент, обеспечивающий однонаправленную синхронизацию записей на
|
|
читателей из <a class="glossterm" href="#ab-abis"><em class="glossterm"><a class="glossterm" href="#ab-abis" title="АБИС">АБИС</a></em></a> <span class="application">"Руслан-Нео"</span> с используемым механизмом хранения
|
|
учётных данных. Таким образом, при создании или изменении записи на читателя, например, при помощи АРМ Книговыдачи
|
|
<a class="glossterm" href="#ab-abis"><em class="glossterm"><a class="glossterm" href="#ab-abis" title="АБИС">АБИС</a></em></a> <span class="application">"Руслан-Нео"</span>
|
|
в механизме хранения создаются или изменяются соответствующие учётные записи. Эти записи затем могут быть использованы для
|
|
аутентификации читателей в <a class="glossterm" href="#ab-abis"><em class="glossterm"><a class="glossterm" href="#ab-abis" title="АБИС">АБИС</a></em></a> при помощи доменов безопасности, описанных выше.
|
|
Эта функциональность реализуется при помощи класса <code class="filename">idx-jcr-ejb.jar/com/ols/ruslan/neo/record/UserManager.class</code>.
|
|
Если такая синхронизация не требуется, то указанный класс следует изъять из приложения.</p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a name="d0e1216"></a>3.2.4.2.6. Настройка бизнес-правил</h5></div></div></div><p><a class="glossterm" href="#ab-abis"><em class="glossterm"><a class="glossterm" href="#ab-abis" title="АБИС">АБИС</a></em></a> <span class="application">"Руслан-Нео"</span> использует систему управления бизнес-правилами
|
|
<a class="link" href="https://www.drools.org/" target="_top"><span class="application">Drools</span></a> в процессах обработки запросов от пользователей и событий, возникающих в системе.
|
|
Бизнес-правила и вспомогательные метаданные воплощены в виде записей в <a class="glossterm" href="#ab-db"><em class="glossterm"><a class="glossterm" href="#ab-db" title="БД">БД</a></em></a> <code class="filename">.config-{сигла библиотеки}</code>.
|
|
Эти записи создаются автоматически при развёртывании серверной части и не обновляются при обновлении серверной части.
|
|
В таблице 3-6 приведены идентификаторы поставляемых записей и их назначение.
|
|
</p><div class="table"><a name="d0e1236"></a><p class="title"><b>Таблица 3-6. Бизнес-правила</b></p><div class="table-contents"><table class="table" summary="Бизнес-правила" border="1"><colgroup><col><col></colgroup><thead><tr><th align="center">Идентификатор записи</th><th align="center">Назначение</th></tr></thead><tbody><tr><td align="left"><code class="literal">kmodule.xml</code></td><td align="left">Вспомогательные метаданные - описание модулей бизнес-правил</td></tr><tr><td align="left"><code class="literal">ruslan-acl-management.drl</code></td><td align="left">Правила управления списками контроля доступа для отдельных записей</td></tr><tr><td align="left"><code class="literal">ruslan-circulation-checkin.drl</code></td><td align="left">Правила возврата документов, выданных во временное пользование</td></tr><tr><td align="left"><code class="literal">ruslan-circulation-checkout.drl</code></td><td align="left">Правила выдачи документов во временное пользование</td></tr><tr><td align="left"><code class="literal">ruslan-circulation-renewal.drl</code></td><td align="left">Правила продления срока пользования документами, выданными во временное пользование</td></tr><tr><td align="left"><code class="literal">ruslan-circulation-requestItem.drl</code></td><td align="left">Правила бронирования документов, включая правила маршрутизации запросов на бронирование в отделы хранения</td></tr><tr><td align="left"><code class="literal">ruslan-retention-versions.drl</code></td><td align="left">Правила хранения версий записей</td></tr></tbody></table></div></div><br class="table-break"><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Важно</h3><p>Поставляемый типовой набор бизнес-правил требует обязательной настройки на конкретные условия применения - отключения ненужных, добавления новых и редактирования имеющихся правил.</p></div><p>
|
|
Редактирование бизнес-правил и вспомогательных метаданных осуществляется при помощи АРМ Администратора. Добавление новых модулей бизнес-правил осуществляется посредством их добавления в
|
|
<code class="filename">rneo.ear/idx-jcr-ejb.jar/config/</code>. При этом название модуля с бизнес-правилами должно соответствовать названию пакета в
|
|
<code class="filename">kmodule.xml</code> - например, <code class="filename">ruslan-circulation-renewal.drl</code> указывает, на то, что этот модуль относится к пакету <code class="literal">ruslan.circulation</code>.
|
|
</p></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="neo-web-configuration"></a>3.2.5. Настройка Web-интерфейса ресурсов</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1309"></a>3.2.5.1. Настройка провайдера услуг</h4></div></div></div><p>Web-интерфейс ресурсов является реализацией провайдера услуг. Для успешного взаимодействия с провайдером идентификации требуется
|
|
его настройка, которая заключается в редактировании конфигурационного файла <code class="filename">WEB-INF/picketlink.xml</code>, включённого в
|
|
<code class="filename">rneo-ear*.ear/rrs-web.war</code>. Как минимум, необходимо указать значения параметров
|
|
<em class="parameter"><code>PicketLinkSP/IdentityURL</code></em> и <em class="parameter"><code>PicketLinkSP/ServiceURL</code></em>, зависящие от конкретных условий
|
|
эксплуатации. В первом из них необходимо указать адрес провайдера идентификации (например, <code class="literal">https://host.domain/ridp/</code>).
|
|
Во втором - адрес провайдера услуг (например, <code class="literal">https://host.domain/rrs-web/</code>).</p></div></div></div></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="d0e1332"></a>Глава 4. Проверка программы</h1></div></div></div><p>
|
|
Проверка развёртывания компонентов серверной части осуществляется при помощи
|
|
средств управления <span class="application">WildFly</span>.
|
|
При неуспешном развёртывании указание на причины следует искать в журнале <span class="application">WildFly</span>.
|
|
</p></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="d0e1343"></a>Глава 5. Дополнительные возможности</h1></div></div></div><p>Серверная часть
|
|
<span class="application">"Руслан-Нео"</span> не обладает иными возможностями, помимо указанных в <a class="link" href="#general" title="Глава 1. Общие сведения о программе">Главе 1</a>.</p></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="d0e1354"></a>Глава 6. Сообщения системному программисту</h1></div></div></div><p>Сообщения системному программисту выводятся в журнал <span class="application">WildFly</span>.</p></div><div class="glossary"><div class="titlepage"><div><div><h1 class="title"><a name="terms"></a>Перечень терминов и их определений</h1></div></div></div><dl><dt><a name="term-wildfly-module"></a><span class="glossterm">
|
|
Модуль
|
|
<span class="application">WildFly</span>
|
|
</span></dt><dd class="glossdef"><p>
|
|
Логический набор классов, предназначенный для загрузки классов и
|
|
управления зависимостями в сервере приложений
|
|
<span class="application">WildFly</span>
|
|
.
|
|
</p><p>
|
|
См. также
|
|
<a class="link" href="https://docs.jboss.org/author/display/WFLY10/Glossary.html#91947458_Glossary-Module" target="_top">Module</a>
|
|
.
|
|
</p></dd><dt><a name="term-wildfly-static-module"></a><span class="glossterm">
|
|
Статический модуль
|
|
<span class="application">WildFly</span>
|
|
</span></dt><dd class="glossdef"><p>
|
|
<a class="glossterm" href="#term-wildfly-module"><em class="glossterm"><a class="glossterm" href="#term-wildfly-module" title="Модуль WildFly">
|
|
Модуль
|
|
<span class="application">WildFly</span>
|
|
</a></em></a>
|
|
, установленный в каталоге
|
|
<code class="filename">modules</code>
|
|
сервера приложений
|
|
<span class="application">WildFly</span>
|
|
.
|
|
</p></dd><dt><a name="term-z3950-client"></a><span class="glossterm">Z39.50-клиент</span></dt><dd class="glossdef"><p>Программное средство, обеспечивающее доступ одного или
|
|
нескольких пользователей к удаленным или локальным ресурсам
|
|
(библиографическим, полнотекстовым и др. базам данных) по
|
|
протоколу
|
|
Z39.50.
|
|
</p></dd></dl></div><div class="glossary"><div class="titlepage"><div><div><h1 class="title"><a name="abbreviations"></a>Перечень сокращений</h1></div></div></div><dl><dt><a name="ab-ejb"></a><span class="glossterm">EJB</span></dt><dd class="glossdef"><p>Enterprise JavaBeans</p></dd><dt><a name="ab-jcr"></a><span class="glossterm">JCR</span></dt><dd class="glossdef"><p>Java Content Repository</p></dd><dt><a name="ab-jdbc"></a><span class="glossterm">JDBC</span></dt><dd class="glossdef"><p>Java Database Connectivity</p></dd><dt><a name="ab-jndi"></a><span class="glossterm">JNDI</span></dt><dd class="glossdef"><p>Java Naming and Directory Interface</p></dd><dt><a name="ab-json"></a><span class="glossterm">JSON</span></dt><dd class="glossdef"><p>JavaScript Object Notation</p></dd><dt><a name="ab-ldap"></a><span class="glossterm">LDAP</span></dt><dd class="glossdef"><p>Lightweight Directory Access Protocol</p></dd><dt><a name="ab-ncip"></a><span class="glossterm">NCIP</span></dt><dd class="glossdef"><p>
|
|
<a class="link" href="http://www.ncip.info" target="_top">NISO Circulation
|
|
Interchange Protocol
|
|
</a>
|
|
</p></dd><dt><a name="ab-niso"></a><span class="glossterm">NISO</span></dt><dd class="glossdef"><p>National Information Standards Organization</p></dd><dt><a name="ab-saml"></a><span class="glossterm">SAML</span></dt><dd class="glossdef"><p>Security Assertion Markup Language</p></dd><dt><a name="ab-sip"></a><span class="glossterm">SIP</span></dt><dd class="glossdef"><p>Standard Interchange Protocol</p></dd><dt><a name="ab-sru"></a><span class="glossterm">SRU</span></dt><dd class="glossdef"><p>
|
|
<a class="link" href="http://www.loc.gov/standards/sru/sru-2-0.html" target="_top">Search/Retrieve
|
|
via URL
|
|
</a>
|
|
</p></dd><dt><a name="ab-url"></a><span class="glossterm">URL</span></dt><dd class="glossdef"><p>Uniform Resource Locator</p></dd><dt><a name="ab-webdav"></a><span class="glossterm">WebDAV</span></dt><dd class="glossdef"><p>
|
|
<a class="link" href="http://tools.ietf.org/html/rfc4918" target="_top">Web
|
|
Distributed Authoring and Versioning
|
|
</a>
|
|
</p></dd><dt><a name="ab-xml"></a><span class="glossterm">XML</span></dt><dd class="glossdef"><p>The Extensible Markup Language</p></dd><dt><a name="ab-abis"></a><span class="glossterm">АБИС</span></dt><dd class="glossdef"><p>Автоматизированная библиотечно-информационная система</p></dd><dt><a name="ab-db"></a><span class="glossterm">БД</span></dt><dd class="glossdef"><p>База данных</p></dd><dt><a name="ab-dbms"></a><span class="glossterm">СУБД</span></dt><dd class="glossdef"><p>Система управления базами данных</p></dd></dl></div><div class="appendix"><div class="titlepage"><div><div><h1 class="title"><a name="app-1"></a>Приложение 1. Конфигурационный файл сервера приложений WildFly</h1></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="datasource"></a>1.1. Источник данных</h2></div></div></div><p>
|
|
Показано описание двух источников данных -
|
|
<code class="literal">java:jboss/datasources/lib1</code>
|
|
и
|
|
<code class="literal">java:jboss/datasources/neo</code>
|
|
, а также драйвера
|
|
<code class="literal">oracle</code>
|
|
.
|
|
</p><div class="informalexample"><pre class="programlisting"><subsystem xmlns="urn:jboss:domain:datasources:2.0">
|
|
<datasources>
|
|
<datasource
|
|
jta="false"
|
|
jndi-name="java:jboss/datasources/lib1"
|
|
pool-name="lib1" enabled="true" use-ccm="false">
|
|
<connection-url>jdbc:oracle:thin:@oracle.test.org:1521/ORA11
|
|
</connection-url>
|
|
<driver-class>oracle.jdbc.OracleDriver</driver-class>
|
|
<new-connection-sql>alter session set current_schema=lib1
|
|
</new-connection-sql>
|
|
<driver>oracle</driver>
|
|
<security>
|
|
<user-name>lib1</user-name>
|
|
<password>lib1_pwd</password>
|
|
</security>
|
|
<validation>
|
|
<validate-on-match>false</validate-on-match>
|
|
<background-validation>false</background-validation>
|
|
</validation>
|
|
<statement>
|
|
<share-prepared-statements>false</share-prepared-statements>
|
|
</statement>
|
|
</datasource>
|
|
<datasource
|
|
jta="false"
|
|
jndi-name="java:jboss/datasources/neo"
|
|
pool-name="neo"
|
|
enabled="true"
|
|
use-ccm="false"
|
|
statistics-enabled="true">
|
|
<connection-url>jdbc:oracle:thin:@localhost:1521/xe</connection-url>
|
|
<driver-class>oracle.jdbc.OracleDriver</driver-class>
|
|
<driver>oracle</driver>
|
|
<security>
|
|
<user-name>neo</user-name>
|
|
<password>changeit</password>
|
|
</security>
|
|
<validation>
|
|
<validate-on-match>false</validate-on-match>
|
|
<background-validation>false</background-validation>
|
|
</validation>
|
|
<statement>
|
|
<share-prepared-statements>false</share-prepared-statements>
|
|
</statement>
|
|
</datasource>
|
|
<driver name="oracle" module="com.oracle.ojdbc">
|
|
<xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource
|
|
</xa-datasource-class>
|
|
</driver>
|
|
</datasources>
|
|
</subsystem></pre></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="repository"></a>1.2. Репозиторий</h2></div></div></div><p>
|
|
Показано описание репозитория neo, использующего для хранения как
|
|
обычных, так и двоичных данных источник данных
|
|
<code class="literal">java:jboss/datasources/neo</code>
|
|
. Также показано описание необходимых для работы индексов.
|
|
</p><div class="informalexample"><pre class="programlisting"><repository name="neo">
|
|
<db-persistence create-on-start="true"
|
|
data-source-jndi-name="java:jboss/datasources/neo" />
|
|
<index-providers>
|
|
<index-provider name="lucene" classname="lucene"
|
|
module="org.modeshape.index-provider.lucene"
|
|
relative-to="jboss.server.data.dir"
|
|
path="modeshape/neo/indexes/" />
|
|
<index-provider name="local" classname="local"
|
|
relative-to="jboss.server.data.dir" path="modeshape/neo/indexes/" />
|
|
</index-providers>
|
|
<indexes>
|
|
<index name="file_path" provider-name="lucene" kind="value"
|
|
synchronous="true" node-type="nt:file" columns="jcr:path(PATH)" />
|
|
<index name="res_path" provider-name="lucene" kind="value"
|
|
synchronous="true" node-type="nt:resource" columns="jcr:path(PATH)" />
|
|
<index name="file_name" provider-name="lucene" kind="value"
|
|
synchronous="true" node-type="nt:file" columns="jcr:name(NAME)" />
|
|
<index name="folder_name" provider-name="lucene" kind="value"
|
|
synchronous="true" node-type="nt:folder" columns="jcr:name(NAME)" />
|
|
<index name="rn_itemId" provider-name="lucene" kind="value"
|
|
synchronous="true" node-type="nt:file" columns="rn:itemId(STRING)" />
|
|
<index name="rn_userId" provider-name="lucene" kind="value"
|
|
synchronous="true" node-type="nt:file" columns="rn:userId(STRING)" />
|
|
<index name="rn_circ_userId" provider-name="lucene" kind="value"
|
|
synchronous="true" node-type="nt:file" columns="rn:circUserId(STRING)"/>
|
|
</indexes>
|
|
<reindexing async="true" mode="if_missing" />
|
|
<db-binary-storage data-source-jndi-name="java:jboss/datasources/neo" />
|
|
</repository>
|
|
</pre></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="security-domains"></a>1.3. Домены безопасности</h2></div></div></div><p>
|
|
Показано описание домена безопасности modeshape-security,
|
|
использующего
|
|
источник
|
|
<a class="glossterm" href="#ab-ldap"><em class="glossterm"><a class="glossterm" href="#ab-ldap" title="LDAP">LDAP</a></em></a>
|
|
со специфичными для
|
|
<span class="application">Active Directory</span>
|
|
настройками (идентификатор пользователя - в атрибуте
|
|
<em class="parameter"><code>sAMAccountName</code></em>
|
|
, идентификатор организации (сигла библиотеки) - в атрибуте
|
|
<em class="parameter"><code>company</code></em>
|
|
).
|
|
</p><p>
|
|
Показано описание домена безопасности
|
|
<code class="literal"> modeshape-security-db</code>
|
|
, использующего реляционный источник данных
|
|
<code class="literal">java:jboss/datasources/ExampleDS</code>
|
|
(идентификатор библиотеки
|
|
<code class="literal">00000000</code>
|
|
указывается статическим образом в параметре
|
|
<em class="parameter"><code>rolesQuery</code></em>
|
|
).
|
|
</p><p>
|
|
Также показано описание домена безопасности
|
|
<code class="literal">sp</code>
|
|
.
|
|
</p><div class="informalexample"><pre class="programlisting"><subsystem xmlns="urn:jboss:domain:security:1.2">
|
|
<security-domains>
|
|
<security-domain name="modeshape-security" cache-type="default">
|
|
<authentication>
|
|
<login-module code="LdapExtended" flag="required">
|
|
<module-option name="password-stacking" value="useFirstPass" />
|
|
<module-option name="java.naming.provider.url"
|
|
value="ldap://localhost:389" />
|
|
<module-option name="java.naming.referral" value="follow" />
|
|
<module-option name="bindDN" value="CN=LDAP user,CN=Users,DC=LOCAL" />
|
|
<module-option name="bindCredential" value="changeit" />
|
|
<module-option name="baseCtxDN" value="DC=LOCAL" />
|
|
<module-option name="baseFilter" value="(sAMAccountName={0})" />
|
|
<module-option name="rolesCtxDN" value="OU=ruslan,DC=LOCAL" />
|
|
<module-option name="roleFilter" value="(member={1})" />
|
|
<module-option name="roleAttributeID" value="cn" />
|
|
<module-option name="roleAttributeIsDN" value="false" />
|
|
<module-option name="roleRecursion" value="2" />
|
|
<module-option name="searchScope" value="SUBTREE_SCOPE" />
|
|
<module-option name="allowEmptyPasswords" value="false" />
|
|
</login-module>
|
|
</authentication>
|
|
<mapping>
|
|
<mapping-module
|
|
code="org.jboss.security.mapping.providers.attribute.LdapAttributeMappingProvider"
|
|
type="attribute">
|
|
<module-option name="attributeList" value="company" />
|
|
<module-option name="bindDN" value="CN=LDAP user,CN=Users,DC=LOCAL" />
|
|
<module-option name="bindCredential" value="changeit" />
|
|
<module-option name="baseFilter" value="(sAMAccountName={0})" />
|
|
<module-option name="java.naming.provider.url"
|
|
value="ldap://localhost:389" />
|
|
<module-option name="baseCtxDN" value="DC=LOCAL" />
|
|
</mapping-module>
|
|
</mapping>
|
|
</security-domain>
|
|
<security-domain name="modeshape-security-db"
|
|
cache-type="default">
|
|
<authentication>
|
|
<login-module
|
|
code="org.jboss.security.auth.spi.DatabaseServerLoginModule"
|
|
flag="required">
|
|
<module-option name="hashAlgorithm" value="SHA-512" />
|
|
<module-option name="hashEncoding" value="base64" />
|
|
<module-option name="dsJndiName"
|
|
value="java:jboss/datasources/ExampleDS" />
|
|
<module-option name="principalsQuery"
|
|
value="select p.passwordencodedhash from
|
|
passwordcredentialtypeentity p, accounttypeentity a
|
|
where p.owner_id=a.id and a.loginname=?" />
|
|
<module-option name="rolesQuery"
|
|
value="select '00000000', 'Orgs' from attributetypeentity union
|
|
select distinct r.name, 'Roles' from roletypeentity r,
|
|
relationshipidentitytypeentity x1,
|
|
relationshipidentitytypeentity x2,
|
|
accounttypeentity a where r.id=x1.identitytype_id
|
|
and x1.descriptor='role' and x2.descriptor='assignee'
|
|
and x1.owner_id=x2.owner_id and x2.identitytype_id=a.id
|
|
and a.loginname=?" />
|
|
<module-option name="digestCallback"
|
|
value="com.ols.auth.SaltedPasswordProcessor" />
|
|
<module-option name="saltQuery"
|
|
value="select p.passwordsalt from passwordcredentialtypeentity p,
|
|
accounttypeentity a where p.owner_id=a.id and a.loginname=?" />
|
|
</login-module>
|
|
</authentication>
|
|
</security-domain>
|
|
<security-domain name="sp" cache-type="default">
|
|
<authentication>
|
|
<login-module
|
|
code="org.picketlink.identity.federation.bindings.wildfly.SAML2LoginModule"
|
|
flag="required" />
|
|
</authentication>
|
|
</security-domain>
|
|
</security-domains>
|
|
</subsystem>
|
|
</pre></div></div></div></div></div></div></body></html>
|