Форсируем сброс атуентификации сервиса в случае, если обработчик вернул UNAUTH
This commit is contained in:
parent
4870b93e29
commit
ee4e5ddd97
@ -15,6 +15,7 @@ const { SERR_OBJECT_BAD_INTERFACE } = require("./constants"); //Общесист
|
|||||||
const { makeErrorText, validateObject } = require("./utils"); //Вспомогательные функции
|
const { makeErrorText, validateObject } = require("./utils"); //Вспомогательные функции
|
||||||
const { NINC_EXEC_CNT_YES, NINC_EXEC_CNT_NO } = require("../models/prms_db_connector"); //Схемы валидации параметров функций модуля взаимодействия с БД
|
const { NINC_EXEC_CNT_YES, NINC_EXEC_CNT_NO } = require("../models/prms_db_connector"); //Схемы валидации параметров функций модуля взаимодействия с БД
|
||||||
const objOutQueueProcessorSchema = require("../models/obj_out_queue_processor"); //Схемы валидации сообщений обмена с обработчиком сообщения очереди
|
const objOutQueueProcessorSchema = require("../models/obj_out_queue_processor"); //Схемы валидации сообщений обмена с обработчиком сообщения очереди
|
||||||
|
const { NFORCE_YES } = require("../models/common"); //Общие константы и схемы валидации
|
||||||
const objQueueSchema = require("../models/obj_queue"); //Схемы валидации сообщения очереди
|
const objQueueSchema = require("../models/obj_queue"); //Схемы валидации сообщения очереди
|
||||||
const objServiceFnSchema = require("../models/obj_service_function"); //Схемы валидации функции сервиса
|
const objServiceFnSchema = require("../models/obj_service_function"); //Схемы валидации функции сервиса
|
||||||
const prmsOutQueueSchema = require("../models/prms_out_queue"); //Схемы валидации параметров функций класса
|
const prmsOutQueueSchema = require("../models/prms_out_queue"); //Схемы валидации параметров функций класса
|
||||||
@ -259,7 +260,18 @@ class OutQueue extends EventEmitter {
|
|||||||
//Ошибки обработки нет, но может быть есть ошибка аутентификации
|
//Ошибки обработки нет, но может быть есть ошибка аутентификации
|
||||||
if (result.sResult == objOutQueueProcessorSchema.STASK_RESULT_UNAUTH) {
|
if (result.sResult == objOutQueueProcessorSchema.STASK_RESULT_UNAUTH) {
|
||||||
//Ставим задачу на аутентификацию сервиса
|
//Ставим задачу на аутентификацию сервиса
|
||||||
await this.dbConn.putServiceAuthInQueue({ nServiceId: prms.queue.nServiceId });
|
try {
|
||||||
|
await this.dbConn.putServiceAuthInQueue({
|
||||||
|
nServiceId: prms.queue.nServiceId,
|
||||||
|
nForce: NFORCE_YES
|
||||||
|
});
|
||||||
|
} catch (e) {
|
||||||
|
//Отразим в протоколе ошибку постановки задачи на аутентификацию сервиса
|
||||||
|
await self.logger.error(
|
||||||
|
`Ошибка постановки задачи на аутентификацию сервиса: ${makeErrorText(e)}`,
|
||||||
|
{ nQueueId: prms.queue.nId }
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -3,6 +3,14 @@
|
|||||||
Модели данных: общие функции валидации, константы, модели
|
Модели данных: общие функции валидации, константы, модели
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
//----------
|
||||||
|
// Константы
|
||||||
|
//----------
|
||||||
|
|
||||||
|
//Признак принудительного исполнения действия
|
||||||
|
NFORCE_NO = 0; //Не выполнять принудительно (нормальный уровень проверок исполения)
|
||||||
|
NFORCE_YES = 1; //Выполнить принудительно (пониженный уровень проверок исполнения)
|
||||||
|
|
||||||
//------------
|
//------------
|
||||||
// Тело модуля
|
// Тело модуля
|
||||||
//------------
|
//------------
|
||||||
@ -31,4 +39,6 @@ const validateMailList = sMailList => {
|
|||||||
// Интерфейс модуля
|
// Интерфейс модуля
|
||||||
//-----------------
|
//-----------------
|
||||||
|
|
||||||
|
exports.NFORCE_NO = NFORCE_NO;
|
||||||
|
exports.NFORCE_YES = NFORCE_YES;
|
||||||
exports.validateMailList = validateMailList;
|
exports.validateMailList = validateMailList;
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
const Schema = require("validate"); //Схемы валидации
|
const Schema = require("validate"); //Схемы валидации
|
||||||
const { dbConnect } = require("./obj_config"); //Схемы валидации конфигурации сервера приложений
|
const { dbConnect } = require("./obj_config"); //Схемы валидации конфигурации сервера приложений
|
||||||
const { NLOG_STATE_INF, NLOG_STATE_WRN, NLOG_STATE_ERR } = require("./obj_log"); //Схемы валидации записи журнала работы сервиса обмена
|
const { NLOG_STATE_INF, NLOG_STATE_WRN, NLOG_STATE_ERR } = require("./obj_log"); //Схемы валидации записи журнала работы сервиса обмена
|
||||||
|
const { NFORCE_NO, NFORCE_YES } = require("./common"); //Общие алгоритмы валидации
|
||||||
const {
|
const {
|
||||||
NQUEUE_EXEC_STATE_INQUEUE,
|
NQUEUE_EXEC_STATE_INQUEUE,
|
||||||
NQUEUE_EXEC_STATE_APP,
|
NQUEUE_EXEC_STATE_APP,
|
||||||
@ -166,6 +167,18 @@ exports.putServiceAuthInQueue = new Schema({
|
|||||||
type: path => `Идентификатор сервиса (${path}) имеет некорректный тип данных (ожидалось - Number)`,
|
type: path => `Идентификатор сервиса (${path}) имеет некорректный тип данных (ожидалось - Number)`,
|
||||||
required: path => `Не указан идентификатор сервиса (${path})`
|
required: path => `Не указан идентификатор сервиса (${path})`
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
//Признак принудительного завершения сессии
|
||||||
|
nForce: {
|
||||||
|
type: Number,
|
||||||
|
required: false,
|
||||||
|
enum: [NFORCE_YES, NFORCE_NO],
|
||||||
|
message: {
|
||||||
|
type: path =>
|
||||||
|
`Признак принудительного завершения сессии (${path}) имеет некорректный тип данных (ожидалось - Number)`,
|
||||||
|
enum: path => `Значение признака принудительного завершения сессии (${path}) не поддерживается`,
|
||||||
|
required: path => `Не указан признак принудительного завершения сессии (${path})`
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -143,8 +143,8 @@ const isServiceAuth = async prms => {
|
|||||||
const putServiceAuthInQueue = async prms => {
|
const putServiceAuthInQueue = async prms => {
|
||||||
try {
|
try {
|
||||||
await prms.connection.execute(
|
await prms.connection.execute(
|
||||||
"BEGIN PKG_EXS.SERVICE_AUTH_PUT_INQUEUE(NEXSSERVICE => :NEXSSERVICE); END;",
|
"BEGIN PKG_EXS.SERVICE_AUTH_PUT_INQUEUE(NEXSSERVICE => :NEXSSERVICE, NFORCE => :NFORCE); END;",
|
||||||
{ NEXSSERVICE: prms.nServiceId },
|
{ NEXSSERVICE: prms.nServiceId, NFORCE: prms.nForce },
|
||||||
{ autoCommit: true }
|
{ autoCommit: true }
|
||||||
);
|
);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user