forked from CITKParus/P8-ExchangeService
Форсируем сброс атуентификации сервиса (серверная часть)
This commit is contained in:
parent
ee4e5ddd97
commit
e67b078ca4
@ -124,6 +124,10 @@ create or replace package PKG_EXS as
|
|||||||
NIS_ORIGINAL_NO constant number(1) := 0; -- Оригинал
|
NIS_ORIGINAL_NO constant number(1) := 0; -- Оригинал
|
||||||
NIS_ORIGINAL_YES constant number(1) := 1; -- Не оригинал
|
NIS_ORIGINAL_YES constant number(1) := 1; -- Не оригинал
|
||||||
|
|
||||||
|
/* Константы - признак принудительного исполнения действия */
|
||||||
|
NFORCE_NO constant number(1) := 0; -- Не выполнять принудительно (нормальный уровень проверок исполения)
|
||||||
|
NFORCE_YES constant number(1) := 1; -- Выполнить принудительно (пониженный уровень проверок исполнения)
|
||||||
|
|
||||||
/* Константы - ожидаемый интерфейс процедуры обработки сообщения очереди на стороне БД */
|
/* Константы - ожидаемый интерфейс процедуры обработки сообщения очереди на стороне БД */
|
||||||
SPRC_RESP_ARGS constant varchar2(80) := 'NIDENT,IN,NUMBER;NEXSQUEUE,IN,NUMBER;'; -- Список параметров процедуры обработки
|
SPRC_RESP_ARGS constant varchar2(80) := 'NIDENT,IN,NUMBER;NEXSQUEUE,IN,NUMBER;'; -- Список параметров процедуры обработки
|
||||||
|
|
||||||
@ -350,7 +354,8 @@ create or replace package PKG_EXS as
|
|||||||
/* Помещение задания на аутентификацию (начало сеанса) сервиса в очередь обмена */
|
/* Помещение задания на аутентификацию (начало сеанса) сервиса в очередь обмена */
|
||||||
procedure SERVICE_AUTH_PUT_INQUEUE
|
procedure SERVICE_AUTH_PUT_INQUEUE
|
||||||
(
|
(
|
||||||
NEXSSERVICE in number -- Ðåã. íîìåð ñåðâèñà îáìåíà
|
NEXSSERVICE in number, -- Рег. номер сервиса обмена
|
||||||
|
NFORCE in number := NFORCE_NO -- Флаг принудительной отмены аутентификации, без проверки текущей аутентификации (см. константы NFORCE_*, null - без принудительной отмены аутентификации)
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Помещение задания на отмену аутентификации (завершение сеанса) сервиса в очередь обмена */
|
/* Помещение задания на отмену аутентификации (завершение сеанса) сервиса в очередь обмена */
|
||||||
@ -1493,7 +1498,8 @@ create or replace package body PKG_EXS as
|
|||||||
/* Помещение задания на аутентификацию (начало сеанса) сервиса в очередь обмена */
|
/* Помещение задания на аутентификацию (начало сеанса) сервиса в очередь обмена */
|
||||||
procedure SERVICE_AUTH_PUT_INQUEUE
|
procedure SERVICE_AUTH_PUT_INQUEUE
|
||||||
(
|
(
|
||||||
NEXSSERVICE in number -- Ðåã. íîìåð ñåðâèñà îáìåíà
|
NEXSSERVICE in number, -- Рег. номер сервиса обмена
|
||||||
|
NFORCE in number := NFORCE_NO -- Флаг принудительной отмены аутентификации, без проверки текущей аутентификации (см. константы NFORCE_*, null - без принудительной отмены аутентификации)
|
||||||
)
|
)
|
||||||
is
|
is
|
||||||
pragma autonomous_transaction;
|
pragma autonomous_transaction;
|
||||||
@ -1503,10 +1509,17 @@ create or replace package body PKG_EXS as
|
|||||||
begin
|
begin
|
||||||
/* Считаем запись сервиса */
|
/* Считаем запись сервиса */
|
||||||
REXSSERVICE := GET_EXSSERVICE_ID(NFLAG_SMART => 0, NRN => NEXSSERVICE);
|
REXSSERVICE := GET_EXSSERVICE_ID(NFLAG_SMART => 0, NRN => NEXSSERVICE);
|
||||||
|
/* Проверим, что корректно указан флаг принудительного помещения задания в очередь */
|
||||||
|
if (NVL(NFORCE, NFORCE_NO) not in (NFORCE_NO, NFORCE_YES)) then
|
||||||
|
P_EXCEPTION(0,
|
||||||
|
'Значение "%s", признака принудительной отмены аутентификации, не поддерживается',
|
||||||
|
TO_CHAR(NFORCE));
|
||||||
|
end if;
|
||||||
/* Работаем только для сервисов отправки сообщений */
|
/* Работаем только для сервисов отправки сообщений */
|
||||||
if (REXSSERVICE.SRV_TYPE = NSRV_TYPE_SEND) then
|
if (REXSSERVICE.SRV_TYPE = NSRV_TYPE_SEND) then
|
||||||
/* Проверим, что сервис ещё не аутентифицирован */
|
/* Проверим, что сервис ещё не аутентифицирован */
|
||||||
if (SERVICE_IS_AUTH(NEXSSERVICE => REXSSERVICE.RN) = PKG_EXS.NIS_AUTH_NO) then
|
if ((NVL(NFORCE, NFORCE_NO) = NFORCE_YES) or
|
||||||
|
((NVL(NFORCE, NFORCE_NO) = NFORCE_NO) and (SERVICE_IS_AUTH(NEXSSERVICE => REXSSERVICE.RN) = PKG_EXS.NIS_AUTH_NO))) then
|
||||||
/* Ищем функцию осуществляющую аутентификацию */
|
/* Ищем функцию осуществляющую аутентификацию */
|
||||||
SERVICE_AUTH_FN_FIND(NFLAG_SMART => 0, NEXSSERVICE => REXSSERVICE.RN, REXSSERVICEFN => REXSSERVICEFN_AUTH);
|
SERVICE_AUTH_FN_FIND(NFLAG_SMART => 0, NEXSSERVICE => REXSSERVICE.RN, REXSSERVICEFN => REXSSERVICEFN_AUTH);
|
||||||
/* Проверяем, что в очереди ещё пока нет запросов на аутентификацию */
|
/* Проверяем, что в очереди ещё пока нет запросов на аутентификацию */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user