release version 1.10.0
This commit is contained in:
@ -0,0 +1,175 @@
|
||||
ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ
|
||||
|
||||
Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой)
|
||||
версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего
|
||||
Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН
|
||||
7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова,
|
||||
д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу
|
||||
https://www.emdev.ru/about (далее - Компания).
|
||||
|
||||
Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями»
|
||||
(или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения,
|
||||
Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в
|
||||
настоящем документе, в противном случае, он должен не использовать или не получать доступ
|
||||
к Программному обеспечению.
|
||||
|
||||
1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ
|
||||
|
||||
a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии
|
||||
или редакции, исключительные права на которую принадлежат Правообладателю.
|
||||
b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные
|
||||
права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ
|
||||
для ЭВМ № 2021610848 от 19.01.2021 года.
|
||||
c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта
|
||||
https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО.
|
||||
d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также
|
||||
личные неимущественные права авторов произведений на результат интеллектуальной деятельности.
|
||||
e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование
|
||||
ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка
|
||||
включает предоставление Пользователю неисключительного права использования ПО, в том числе
|
||||
получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение
|
||||
патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается
|
||||
Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается
|
||||
для каждого Пользователя индивидуально в Сертификате.
|
||||
f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром),
|
||||
подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное
|
||||
обеспечение в ограниченном объёме и на определённый период времени.
|
||||
g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО,
|
||||
предоставленных Пользователю согласно условиям Подписки.
|
||||
h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного
|
||||
обеспечения.
|
||||
i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий
|
||||
из одного или нескольких файлов, который может быть прочтён человеком.
|
||||
j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля
|
||||
программы, полученный в результате обработки исходного кода, еще не связанный в полную программу.
|
||||
Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый
|
||||
продукт.
|
||||
k) Некоммерческое использование – индивидуальное личное использование Пользователем программного
|
||||
обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации
|
||||
возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая
|
||||
выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения.
|
||||
|
||||
2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
|
||||
|
||||
2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного
|
||||
обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом
|
||||
воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения
|
||||
в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ.
|
||||
2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит
|
||||
неисключительный характер.
|
||||
2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию,
|
||||
лицензия на ограниченное использование Программного обеспечения.
|
||||
2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования
|
||||
имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан
|
||||
обратиться в службу поддержки Правообладателя по адресу: https://entaxy.ru/ для изменения
|
||||
вида лицензии с Базовой бесплатной версии на Подписки.
|
||||
2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для
|
||||
пробного использования программного обеспечения – не ограничен.
|
||||
2.6. Использование Пользователем настоящего программного обеспечения в целях разработки,
|
||||
модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю,
|
||||
без разрешения Правообладателя не допускается.
|
||||
|
||||
3. АВТОРСКОЕ ПРАВО.
|
||||
|
||||
3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение
|
||||
и любые его копии принадлежат Правообладателю.
|
||||
3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента,
|
||||
к которому можно получить доступ с помощью Программного обеспечения, является собственностью
|
||||
соответствующего владельца контента и защищается применимым законодательством об авторском
|
||||
праве или другими законами и договорами об интеллектуальной собственности.
|
||||
3.3. Условия использования Программного обеспечения.
|
||||
Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь
|
||||
придерживается следующих условий:
|
||||
3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять
|
||||
какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании
|
||||
Программного обеспечения или на нем.
|
||||
3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать,
|
||||
расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать
|
||||
Программное обеспечение.
|
||||
3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования
|
||||
ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне.
|
||||
3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено
|
||||
использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам.
|
||||
|
||||
4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС»
|
||||
|
||||
4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю
|
||||
на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с
|
||||
использованием Пользователем:
|
||||
4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в
|
||||
Программное обеспечение;
|
||||
4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями
|
||||
настоящего соглашения;
|
||||
4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием,
|
||||
или данными, не предоставленными Пользователю Правообладателем;
|
||||
4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем.
|
||||
|
||||
|
||||
5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ
|
||||
ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ
|
||||
И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ
|
||||
ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ
|
||||
И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ
|
||||
ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО.
|
||||
|
||||
6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ.
|
||||
НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ
|
||||
ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ,
|
||||
ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ;
|
||||
ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ.
|
||||
ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ
|
||||
ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ;
|
||||
КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ
|
||||
ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ.
|
||||
|
||||
7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ:
|
||||
Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия
|
||||
(включая, но не ограничиваясь) по:
|
||||
-дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код)
|
||||
Программного обеспечения;
|
||||
-модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный
|
||||
код Программного обеспечения, за исключением тех изменений, которые вносятся средствами,
|
||||
включёнными в Программное обеспечение и описанными непосредственно в документации к нему;
|
||||
-созданию условий для использования Программного обеспечения лицами, не имеющими прав на
|
||||
использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство
|
||||
третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа
|
||||
к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку;
|
||||
-распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию).
|
||||
|
||||
8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА.
|
||||
|
||||
8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из
|
||||
лицензионных продуктов, используемых на законных основаниях, а
|
||||
именно https://entaxy.ru/libs/licenses/root-aggregated.deps.
|
||||
8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть
|
||||
совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения.
|
||||
8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться
|
||||
Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения,
|
||||
содержащих все изменения и дополнения программного обеспечения.
|
||||
|
||||
9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ.
|
||||
|
||||
9.1. Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым
|
||||
программным обеспечением.
|
||||
9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно
|
||||
с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм
|
||||
«Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public.
|
||||
9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий
|
||||
пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя,
|
||||
прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер
|
||||
ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства
|
||||
Российской Федерации.
|
||||
|
||||
10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ.
|
||||
|
||||
10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет
|
||||
право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб,
|
||||
недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий
|
||||
пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере
|
||||
2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения
|
||||
исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy).
|
||||
10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое
|
||||
законодательство – Российской Федерации.
|
||||
10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным,
|
||||
остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать
|
||||
исполнять свои обязанности в соответствии с этими положениями.
|
@ -0,0 +1,94 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
|
||||
<parent>
|
||||
<groupId>ru.entaxy.platform.security</groupId>
|
||||
<artifactId>legacy-permissions</artifactId>
|
||||
<version>1.10.0</version>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>ru.entaxy.esb.system.core.permission</groupId>
|
||||
<artifactId>permission-impl</artifactId>
|
||||
<name>SYSTEM :: ENTAXY :: CORE :: PERMISSION :: IMPL</name>
|
||||
<packaging>bundle</packaging>
|
||||
|
||||
<properties>
|
||||
<bundle.osgi.export.pkg>
|
||||
ru.entaxy.esb.system.core.permission.jpa.entity
|
||||
</bundle.osgi.export.pkg>
|
||||
<!-- bundle.osgi.private.pkg>
|
||||
ru.entaxy.esb.system.core.permission.interceptor,
|
||||
ru.entaxy.esb.system.core.permission.jpa.impl
|
||||
</bundle.osgi.private.pkg -->
|
||||
<bundle.osgi.import.pkg>
|
||||
javax.xml.bind;version="[2,3)",
|
||||
javax.xml.bind.annotation;version="[2,3)",
|
||||
javax.persistence;version="[2,3)",
|
||||
org.hibernate,
|
||||
org.hibernate.cfg,
|
||||
org.hibernate.service,
|
||||
org.hibernate.jpa,
|
||||
org.hibernate.proxy,
|
||||
javassist.util.proxy,
|
||||
*
|
||||
</bundle.osgi.import.pkg>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.osgi</groupId>
|
||||
<artifactId>osgi.core</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.persistence</groupId>
|
||||
<artifactId>javax.persistence</artifactId>
|
||||
<version>${jpa.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.transaction</groupId>
|
||||
<artifactId>javax.transaction-api</artifactId>
|
||||
<version>${javax.transaction.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.interceptor</groupId>
|
||||
<artifactId>javax.interceptor-api</artifactId>
|
||||
<version>${javax.interceptor.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>ru.entaxy.esb.platform.runtime.base</groupId>
|
||||
<artifactId>base-support</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>ru.entaxy.esb.system.core.permission</groupId>
|
||||
<artifactId>permission-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>ru.entaxy.esb.system.core.permission</groupId>
|
||||
<artifactId>permission-common</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ru.entaxy.platform.security.jaas</groupId>
|
||||
<artifactId>entaxy-legacy-auth</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.camel</groupId>
|
||||
<artifactId>camel-cxf</artifactId>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
@ -0,0 +1,121 @@
|
||||
/*-
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* permission-impl
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
||||
* ==========
|
||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
||||
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||
* rights to the Software and any copies are the property of the Copyright Holder. Unless
|
||||
* it is explicitly allowed the Copyright Holder, the User is prohibited from using the
|
||||
* Software for commercial purposes to provide services to third parties.
|
||||
*
|
||||
* The Copyright Holder hereby declares that the Software is provided on an "AS IS".
|
||||
* Under no circumstances does the Copyright Holder guarantee or promise that the
|
||||
* Software provided by him will be suitable or not suitable for the specific purposes
|
||||
* of the User, that the Software will meet all commercial and personal subjective
|
||||
* expectations of the User, that the Software will work properly, without technical
|
||||
* errors, quickly and uninterruptedly.
|
||||
*
|
||||
* Under no circumstances shall the Copyright Holder or its Affiliates is not liable
|
||||
* to the User for any direct or indirect losses of the User, his expenses or actual
|
||||
* damage, including, downtime; loss of bussines; lost profit; lost earnings; loss
|
||||
* or damage to data, property, etc.
|
||||
* ~~~~~~/licensing~~~~~~
|
||||
*/
|
||||
package ru.entaxy.esb.system.core.permission.interceptor;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
import javax.ws.rs.ForbiddenException;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.apache.cxf.interceptor.Fault;
|
||||
import org.apache.cxf.message.Message;
|
||||
import org.apache.cxf.phase.AbstractPhaseInterceptor;
|
||||
import org.apache.cxf.phase.Phase;
|
||||
import org.apache.cxf.transport.http.Headers;
|
||||
import org.osgi.framework.FrameworkUtil;
|
||||
|
||||
import ru.entaxy.esb.system.auth.basic.jpa.api.BasicAuthService;
|
||||
import ru.entaxy.esb.system.auth.basic.jpa.api.entity.BasicAuthAccount;
|
||||
import ru.entaxy.esb.system.core.permission.common.PermissionConstants;
|
||||
import ru.entaxy.esb.system.core.permission.jpa.PermissionService;
|
||||
import ru.entaxy.platform.base.support.osgi.OSGIUtils;
|
||||
|
||||
public class ServiceInterceptor extends AbstractPhaseInterceptor<Message> {
|
||||
|
||||
private static final Log LOG = LogFactory.getLog(ServiceInterceptor.class);
|
||||
private static final String APACHE_CXF_MESSAGE_MESSAGE_PATH_INFO = "org.apache.cxf.message.Message.PATH_INFO";
|
||||
private static final String HEADER_USER_LOGIN = "X-ForwardedUser";
|
||||
private static final String CXF = "/cxf/";
|
||||
|
||||
private PermissionService permissionService;
|
||||
private BasicAuthService basicAuthService;
|
||||
|
||||
public ServiceInterceptor() {
|
||||
super(Phase.RECEIVE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleMessage(Message message) throws Fault {
|
||||
Map<String, List<String>> headers = Headers.getSetProtocolHeaders(message);
|
||||
String serviceName = message.get(APACHE_CXF_MESSAGE_MESSAGE_PATH_INFO).toString();
|
||||
if (serviceName.contains(CXF)) {
|
||||
serviceName = serviceName.replace(CXF, "");
|
||||
} else {
|
||||
int firstSlashIndex = serviceName.indexOf("/") + 1;
|
||||
serviceName = serviceName.substring(firstSlashIndex, serviceName.indexOf("/", firstSlashIndex));
|
||||
}
|
||||
|
||||
Optional<String> login = Optional.ofNullable(headers.get(HEADER_USER_LOGIN))
|
||||
.orElse(Collections.emptyList())
|
||||
.stream().findFirst();
|
||||
|
||||
Optional<BasicAuthAccount> basicAuthAccount = Optional.empty();
|
||||
if (login.isPresent()) {
|
||||
basicAuthAccount = getBasicAuthService().get(login.get());
|
||||
}
|
||||
|
||||
LOG.trace(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>ServiceInterceptor" +
|
||||
" <<< serviceName " + serviceName +
|
||||
" <<< login " + login);
|
||||
if (!login.isPresent() || !basicAuthAccount.isPresent() ||
|
||||
!getPermissionService().existByAllParameters(basicAuthAccount.get().getId(),
|
||||
PermissionConstants.TYPE_ACCOUNT,
|
||||
serviceName, PermissionConstants.TYPE_SERVICE, null)) {
|
||||
throw new ForbiddenException();
|
||||
}
|
||||
}
|
||||
|
||||
public void setPermissionService(PermissionService permissionService) {
|
||||
this.permissionService = permissionService;
|
||||
}
|
||||
|
||||
public PermissionService getPermissionService() {
|
||||
if (permissionService == null) {
|
||||
permissionService = (PermissionService) OSGIUtils.getService(
|
||||
FrameworkUtil.getBundle(ServiceInterceptor.class).getBundleContext(),
|
||||
PermissionService.class);
|
||||
}
|
||||
return permissionService;
|
||||
}
|
||||
|
||||
public void setBasicAuthService(BasicAuthService basicAuthService) {
|
||||
this.basicAuthService = basicAuthService;
|
||||
}
|
||||
|
||||
public BasicAuthService getBasicAuthService() {
|
||||
if (basicAuthService == null) {
|
||||
basicAuthService = (BasicAuthService) OSGIUtils.getService(
|
||||
FrameworkUtil.getBundle(ServiceInterceptor.class).getBundleContext(),
|
||||
BasicAuthService.class);
|
||||
}
|
||||
return basicAuthService;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,436 @@
|
||||
/*-
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* permission-impl
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
||||
* ==========
|
||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
||||
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||
* rights to the Software and any copies are the property of the Copyright Holder. Unless
|
||||
* it is explicitly allowed the Copyright Holder, the User is prohibited from using the
|
||||
* Software for commercial purposes to provide services to third parties.
|
||||
*
|
||||
* The Copyright Holder hereby declares that the Software is provided on an "AS IS".
|
||||
* Under no circumstances does the Copyright Holder guarantee or promise that the
|
||||
* Software provided by him will be suitable or not suitable for the specific purposes
|
||||
* of the User, that the Software will meet all commercial and personal subjective
|
||||
* expectations of the User, that the Software will work properly, without technical
|
||||
* errors, quickly and uninterruptedly.
|
||||
*
|
||||
* Under no circumstances shall the Copyright Holder or its Affiliates is not liable
|
||||
* to the User for any direct or indirect losses of the User, his expenses or actual
|
||||
* damage, including, downtime; loss of bussines; lost profit; lost earnings; loss
|
||||
* or damage to data, property, etc.
|
||||
* ~~~~~~/licensing~~~~~~
|
||||
*/
|
||||
package ru.entaxy.esb.system.core.permission.jpa.impl;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.hibernate.Session;
|
||||
import org.hibernate.SessionFactory;
|
||||
import org.hibernate.query.Query;
|
||||
import org.hibernate.type.StringType;
|
||||
import ru.entaxy.esb.system.core.permission.jpa.PermissionService;
|
||||
import ru.entaxy.esb.system.core.permission.jpa.entity.Permission;
|
||||
|
||||
import javax.persistence.criteria.CriteriaBuilder;
|
||||
import javax.persistence.criteria.CriteriaQuery;
|
||||
import javax.persistence.criteria.Root;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import static ru.entaxy.esb.system.core.permission.common.PermissionConstants.ACTION_DEFAULT;
|
||||
|
||||
public class PermissionServiceImpl implements PermissionService {
|
||||
|
||||
private static final Log LOG = LogFactory.getLog(PermissionServiceImpl.class);
|
||||
|
||||
private SessionFactory sessionFactory;
|
||||
|
||||
public void setSessionFactory(SessionFactory sessionFactory) {
|
||||
this.sessionFactory = sessionFactory;
|
||||
}
|
||||
|
||||
public Session getSession() {
|
||||
return sessionFactory.openSession();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Permission> list() {
|
||||
List<Permission> list;
|
||||
try (Session s = getSession()) {
|
||||
s.getTransaction().begin();
|
||||
CriteriaQuery<Permission> cq = s.getCriteriaBuilder().createQuery(Permission.class);
|
||||
cq.from(Permission.class);
|
||||
list = s.createQuery(cq).getResultList();
|
||||
s.getTransaction().commit();
|
||||
s.close();
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Permission get(long id) {
|
||||
Permission permission;
|
||||
try (Session s = getSession()) {
|
||||
s.getTransaction().begin();
|
||||
|
||||
Query<Permission> query = getQuery(s, id);
|
||||
permission = query.getSingleResult();
|
||||
|
||||
s.getTransaction().commit();
|
||||
s.close();
|
||||
}
|
||||
return permission;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<Permission> getAllById(long id, String type) {
|
||||
List<Permission> permissionList;
|
||||
try (Session s = getSession()) {
|
||||
s.getTransaction().begin();
|
||||
permissionList = getAllById(s, id, type);
|
||||
s.getTransaction().commit();
|
||||
s.close();
|
||||
}
|
||||
return permissionList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Permission> getAllById(Session s, long id, String type) {
|
||||
CriteriaBuilder builder = s.getCriteriaBuilder();
|
||||
CriteriaQuery<Permission> criteriaQuery = builder.createQuery(Permission.class);
|
||||
Root<Permission> root = criteriaQuery.from(Permission.class);
|
||||
criteriaQuery.where(
|
||||
builder.or(
|
||||
builder.and(
|
||||
builder.equal(root.get("objectId"), id),
|
||||
builder.equal(root.get("objectType"), type)),
|
||||
builder.and(
|
||||
builder.equal(root.get("subjectId"), String.valueOf(id)),
|
||||
builder.equal(root.get("subjectType"), type))));
|
||||
|
||||
return s.createQuery(criteriaQuery).getResultList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Permission> fetch(long id) {
|
||||
Optional<Permission> permission;
|
||||
try (Session s = getSession()) {
|
||||
s.getTransaction().begin();
|
||||
|
||||
Query<Permission> query = getQuery(s, id);
|
||||
permission = query.uniqueResultOptional();
|
||||
|
||||
s.getTransaction().commit();
|
||||
s.close();
|
||||
}
|
||||
return permission;
|
||||
}
|
||||
|
||||
private Query<Permission> getQuery(Session session, long id) {
|
||||
CriteriaBuilder builder = session.getCriteriaBuilder();
|
||||
CriteriaQuery<Permission> criteriaQuery = builder.createQuery(Permission.class);
|
||||
Root<Permission> root = criteriaQuery.from(Permission.class);
|
||||
criteriaQuery.where(builder.equal(root.get("id"), id));
|
||||
return session.createQuery(criteriaQuery);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Permission> get(long objectId, String objectType, String action) {
|
||||
List<Permission> permissionList;
|
||||
try (Session s = getSession()) {
|
||||
s.getTransaction().begin();
|
||||
permissionList = get(s, objectId, objectType, action);
|
||||
s.getTransaction().commit();
|
||||
s.close();
|
||||
}
|
||||
return permissionList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Permission> get(Session s, long objectId, String objectType, String action) {
|
||||
CriteriaBuilder builder = s.getCriteriaBuilder();
|
||||
CriteriaQuery<Permission> criteriaQuery = builder.createQuery(Permission.class);
|
||||
Root<Permission> root = criteriaQuery.from(Permission.class);
|
||||
criteriaQuery.where(builder.equal(root.get("objectId"), objectId),
|
||||
builder.equal(root.get("objectType"), objectType),
|
||||
builder.equal(root.get("action"), action));
|
||||
return s.createQuery(criteriaQuery).getResultList();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Permission getByAllParameters(long objectId, String objectType, String subjectId,
|
||||
String subjectType, String action) {
|
||||
Permission permission;
|
||||
|
||||
try (Session s = getSession()) {
|
||||
s.getTransaction().begin();
|
||||
permission = getByAllParameters(s, objectId, objectType, subjectId, subjectType, action);
|
||||
s.getTransaction().commit();
|
||||
s.close();
|
||||
}
|
||||
|
||||
return permission;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Permission getByAllParameters(Session session, long objectId, String objectType, String subjectId,
|
||||
String subjectType, String action) {
|
||||
Query<Permission> query = getByAllParametersQuery(session, objectId, objectType, subjectId, subjectType, action);
|
||||
return query.getSingleResult();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Permission> fetchByAllParameters(long objectId, String objectType, String subjectId,
|
||||
String subjectType, String action) {
|
||||
Optional<Permission> permission;
|
||||
|
||||
try (Session s = getSession()) {
|
||||
s.getTransaction().begin();
|
||||
|
||||
Query<Permission> query = getByAllParametersQuery(s, objectId, objectType, subjectId, subjectType, action);
|
||||
permission = query.uniqueResultOptional();
|
||||
|
||||
s.getTransaction().commit();
|
||||
s.close();
|
||||
}
|
||||
|
||||
return permission;
|
||||
}
|
||||
|
||||
private Query<Permission> getByAllParametersQuery(Session s, long objectId, String objectType, String subjectId,
|
||||
String subjectType, String action) {
|
||||
CriteriaBuilder builder = s.getCriteriaBuilder();
|
||||
CriteriaQuery<Permission> criteriaQuery = builder.createQuery(Permission.class);
|
||||
Root<Permission> root = criteriaQuery.from(Permission.class);
|
||||
criteriaQuery.select(root).where(
|
||||
builder.equal(root.get("objectId"), objectId),
|
||||
builder.equal(root.get("objectType"), objectType),
|
||||
builder.equal(root.get("subjectId"), subjectId),
|
||||
builder.equal(root.get("subjectType"), subjectType),
|
||||
builder.equal(root.get("action"), orElseGet(action))
|
||||
);
|
||||
return s.createQuery(criteriaQuery);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean existByAllParameters(long objectId, String objectType, String subjectId,
|
||||
String subjectType, String action) {
|
||||
if (objectId < 1) {
|
||||
return true;
|
||||
}
|
||||
boolean exists = false;
|
||||
try (Session s = getSession()) {
|
||||
s.getTransaction().begin();
|
||||
exists = (s
|
||||
.createQuery("select 1 from Permission where exists ("
|
||||
+ "select 1 from Permission p where "
|
||||
+ " p.objectId = ?0 "
|
||||
+ " AND p.objectType = ?1 "
|
||||
+ " AND p.subjectId = ?2 "
|
||||
+ " AND p.subjectType = ?3 "
|
||||
+ " AND p.action = ?4"
|
||||
+ ")")
|
||||
.setParameter(0, objectId)
|
||||
.setParameter(1, objectType, StringType.INSTANCE)
|
||||
.setParameter(2, subjectId, StringType.INSTANCE)
|
||||
.setParameter(3, subjectType, StringType.INSTANCE)
|
||||
.setParameter(4, orElseGet(action), StringType.INSTANCE)
|
||||
.uniqueResult() != null);
|
||||
|
||||
s.getTransaction().commit();
|
||||
s.close();
|
||||
}
|
||||
return exists;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Permission add(Permission permission) {
|
||||
return save(permission, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Permission add(long objectId, String objectType, String subjectId, String subjectType, String action) {
|
||||
Permission permission = new Permission();
|
||||
fillModel(permission, objectId, objectType, subjectId, subjectType, action);
|
||||
return add(permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Permission addIfNotExist(long objectId, String objectType, String subjectId, String subjectType, String action) {
|
||||
Optional<Permission> permission = fetchByAllParameters(objectId, objectType, subjectId, subjectType, action);
|
||||
return permission.orElseGet(() -> add(objectId, objectType, subjectId, subjectType, action));
|
||||
}
|
||||
|
||||
private void fillModel(Permission permission, long objectId, String objectType, String subjectId,
|
||||
String subjectType, String action) {
|
||||
permission.setObjectId(objectId);
|
||||
permission.setObjectType(objectType);
|
||||
permission.setSubjectId(subjectId);
|
||||
permission.setSubjectType(subjectType);
|
||||
permission.setAction(orElseGet(action));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Permission> addAll(long objectId, String objectType, List<List<String>> subjects) {
|
||||
List<Permission> permissions = new ArrayList<>();
|
||||
if (subjects != null && !subjects.isEmpty()) {
|
||||
for (List<String> subject : subjects) {
|
||||
try {
|
||||
//TODO:make it in tttttransaction
|
||||
permissions.add(
|
||||
addIfNotExist(
|
||||
objectId,
|
||||
objectType,
|
||||
subject.get(0),
|
||||
subject.get(1),
|
||||
subject.get(2)));
|
||||
} catch (Exception e) {
|
||||
LOG.error("Bulk addition of permission error " + e.getMessage());
|
||||
LOG.trace(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
return permissions;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Permission> addAll(List<Permission> permissionsToCreate) {
|
||||
List<Permission> permissions = new ArrayList<>();
|
||||
if (permissionsToCreate != null && !permissionsToCreate.isEmpty()) {
|
||||
for (Permission permission : permissionsToCreate) {
|
||||
try {
|
||||
permissions.add(
|
||||
addIfNotExist(
|
||||
permission.getObjectId(),
|
||||
permission.getObjectType(),
|
||||
permission.getSubjectId(),
|
||||
permission.getSubjectType(),
|
||||
permission.getAction()));
|
||||
} catch (Exception e) {
|
||||
LOG.error("Bulk addition of permission error " + e.getMessage());
|
||||
LOG.trace(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
return permissions;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Permission update(Permission permission) {
|
||||
Optional<Permission> permissionOldOpt = fetch(permission.getId());
|
||||
|
||||
return save(permission, permissionOldOpt.isPresent());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Permission update(long permissionId, long objectId, String objectType, String subjectId, String subjectType, String action) {
|
||||
Permission permission = get(permissionId);
|
||||
fillModel(permission, objectId, objectType, subjectId, subjectType, action);
|
||||
|
||||
return save(permission, true);
|
||||
}
|
||||
|
||||
public Permission save(Permission permission, boolean isExist) {
|
||||
try (Session s = getSession()) {
|
||||
s.getTransaction().begin();
|
||||
if (isExist) {
|
||||
s.update(permission);
|
||||
} else {
|
||||
s.persist(permission);
|
||||
}
|
||||
s.getTransaction().commit();
|
||||
s.close();
|
||||
}
|
||||
return permission;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove(long id) {
|
||||
try (Session s = getSession()) {
|
||||
s.getTransaction().begin();
|
||||
|
||||
Permission permission = get(id);
|
||||
s.delete(Permission.class.getName(), permission);
|
||||
|
||||
s.getTransaction().commit();
|
||||
s.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove(long objectId, String objectType, String subjectId, String subjectType, String action) {
|
||||
try (Session s = getSession()) {
|
||||
s.getTransaction().begin();
|
||||
|
||||
Permission permission = getByAllParameters(s, objectId, objectType, subjectId, subjectType, action);
|
||||
s.delete(Permission.class.getName(), permission);
|
||||
|
||||
s.getTransaction().commit();
|
||||
s.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove(long objectId, String objectType) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove(long objectId, String objectType, String action) {
|
||||
try (Session s = getSession()) {
|
||||
s.getTransaction().begin();
|
||||
|
||||
List<Permission> permission = get(s, objectId, objectType, action);
|
||||
permission.forEach(s::delete);
|
||||
|
||||
s.getTransaction().commit();
|
||||
s.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove(String subjectId, String subjectType) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove(String subjectId, String subjectType, String action) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void removeAll(long objectId, String objectType) {
|
||||
try (Session s = getSession()) {
|
||||
s.getTransaction().begin();
|
||||
|
||||
removeAll(s, objectId, objectType);
|
||||
|
||||
s.getTransaction().commit();
|
||||
s.close();
|
||||
}
|
||||
}
|
||||
|
||||
private String orElseGet(String action) {
|
||||
return action == null || action.isEmpty() ? ACTION_DEFAULT : action;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeAll(Session s, long objectId, String objectType) {
|
||||
List<Permission> permissionList = getAllById(s, objectId, objectType);
|
||||
for (Permission permission : permissionList) {
|
||||
s.delete(Permission.class.getName(), permission);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~~~~~~licensing~~~~~~
|
||||
permission-impl
|
||||
==========
|
||||
Copyright (C) 2020 - 2024 EmDev LLC
|
||||
==========
|
||||
You may not use this file except in accordance with the License Terms of the Copyright
|
||||
Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||
rights to the Software and any copies are the property of the Copyright Holder. Unless
|
||||
it is explicitly allowed the Copyright Holder, the User is prohibited from using the
|
||||
Software for commercial purposes to provide services to third parties.
|
||||
|
||||
The Copyright Holder hereby declares that the Software is provided on an "AS IS".
|
||||
Under no circumstances does the Copyright Holder guarantee or promise that the
|
||||
Software provided by him will be suitable or not suitable for the specific purposes
|
||||
of the User, that the Software will meet all commercial and personal subjective
|
||||
expectations of the User, that the Software will work properly, without technical
|
||||
errors, quickly and uninterruptedly.
|
||||
|
||||
Under no circumstances shall the Copyright Holder or its Affiliates is not liable
|
||||
to the User for any direct or indirect losses of the User, his expenses or actual
|
||||
damage, including, downtime; loss of bussines; lost profit; lost earnings; loss
|
||||
or damage to data, property, etc.
|
||||
~~~~~~/licensing~~~~~~
|
||||
-->
|
||||
|
||||
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
|
||||
xmlns:jpa="http://aries.apache.org/xmlns/jpa/v2.0.0"
|
||||
xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.2.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 https://osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
|
||||
|
||||
<jpa:enable/>
|
||||
<tx:enable-annotations/>
|
||||
|
||||
<reference id="sessionFactory"
|
||||
interface="org.hibernate.SessionFactory"
|
||||
timeout="30000"/>
|
||||
|
||||
<service ref="permissionService"
|
||||
interface="ru.entaxy.esb.system.core.permission.jpa.PermissionService"/>
|
||||
|
||||
<bean id="permissionService"
|
||||
class="ru.entaxy.esb.system.core.permission.jpa.impl.PermissionServiceImpl">
|
||||
<property name="sessionFactory" ref="sessionFactory"/>
|
||||
</bean>
|
||||
|
||||
<bean id="serviceInterceptor" class="ru.entaxy.esb.system.core.permission.interceptor.ServiceInterceptor"/>
|
||||
<service ref="serviceInterceptor" interface="org.apache.cxf.phase.PhaseInterceptor">
|
||||
<service-properties>
|
||||
<entry key="type" value="service"/>
|
||||
</service-properties>
|
||||
</service>
|
||||
|
||||
</blueprint>
|
@ -0,0 +1,46 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<!--
|
||||
~~~~~~licensing~~~~~~
|
||||
permission-impl
|
||||
==========
|
||||
Copyright (C) 2020 - 2024 EmDev LLC
|
||||
==========
|
||||
You may not use this file except in accordance with the License Terms of the Copyright
|
||||
Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||
rights to the Software and any copies are the property of the Copyright Holder. Unless
|
||||
it is explicitly allowed the Copyright Holder, the User is prohibited from using the
|
||||
Software for commercial purposes to provide services to third parties.
|
||||
|
||||
The Copyright Holder hereby declares that the Software is provided on an "AS IS".
|
||||
Under no circumstances does the Copyright Holder guarantee or promise that the
|
||||
Software provided by him will be suitable or not suitable for the specific purposes
|
||||
of the User, that the Software will meet all commercial and personal subjective
|
||||
expectations of the User, that the Software will work properly, without technical
|
||||
errors, quickly and uninterruptedly.
|
||||
|
||||
Under no circumstances shall the Copyright Holder or its Affiliates is not liable
|
||||
to the User for any direct or indirect losses of the User, his expenses or actual
|
||||
damage, including, downtime; loss of bussines; lost profit; lost earnings; loss
|
||||
or damage to data, property, etc.
|
||||
~~~~~~/licensing~~~~~~
|
||||
-->
|
||||
|
||||
<!DOCTYPE hibernate-configuration PUBLIC
|
||||
"-//Hibernate/Hibernate Configuration DTD//EN"
|
||||
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
|
||||
|
||||
<hibernate-configuration>
|
||||
|
||||
<session-factory>
|
||||
<property name="connection.datasource">osgi:service/entaxy.esb.storage</property>
|
||||
<property name="hibernate.hbm2ddl.auto">validate</property>
|
||||
|
||||
<property name="hibernate.enable_lazy_load_no_trans">true</property>
|
||||
|
||||
<property name="show_sql">${hibernate.show_sql}</property>
|
||||
<property name="format_sql">${hibernate.format_sql}</property>
|
||||
|
||||
<mapping class="ru.entaxy.esb.system.core.permission.jpa.entity.Permission"/>
|
||||
</session-factory>
|
||||
|
||||
</hibernate-configuration>
|
Reference in New Issue
Block a user