Форсируем сброс атуентификации сервиса в случае, если обработчик вернул 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 { NINC_EXEC_CNT_YES, NINC_EXEC_CNT_NO } = require("../models/prms_db_connector"); //Схемы валидации параметров функций модуля взаимодействия с БД
|
||||
const objOutQueueProcessorSchema = require("../models/obj_out_queue_processor"); //Схемы валидации сообщений обмена с обработчиком сообщения очереди
|
||||
const { NFORCE_YES } = require("../models/common"); //Общие константы и схемы валидации
|
||||
const objQueueSchema = require("../models/obj_queue"); //Схемы валидации сообщения очереди
|
||||
const objServiceFnSchema = require("../models/obj_service_function"); //Схемы валидации функции сервиса
|
||||
const prmsOutQueueSchema = require("../models/prms_out_queue"); //Схемы валидации параметров функций класса
|
||||
@ -259,7 +260,18 @@ class OutQueue extends EventEmitter {
|
||||
//Ошибки обработки нет, но может быть есть ошибка аутентификации
|
||||
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 {
|
||||
|
@ -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;
|
||||
|
@ -10,6 +10,7 @@
|
||||
const Schema = require("validate"); //Схемы валидации
|
||||
const { dbConnect } = require("./obj_config"); //Схемы валидации конфигурации сервера приложений
|
||||
const { NLOG_STATE_INF, NLOG_STATE_WRN, NLOG_STATE_ERR } = require("./obj_log"); //Схемы валидации записи журнала работы сервиса обмена
|
||||
const { NFORCE_NO, NFORCE_YES } = require("./common"); //Общие алгоритмы валидации
|
||||
const {
|
||||
NQUEUE_EXEC_STATE_INQUEUE,
|
||||
NQUEUE_EXEC_STATE_APP,
|
||||
@ -166,6 +167,18 @@ exports.putServiceAuthInQueue = new Schema({
|
||||
type: path => `Идентификатор сервиса (${path}) имеет некорректный тип данных (ожидалось - Number)`,
|
||||
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 => {
|
||||
try {
|
||||
await prms.connection.execute(
|
||||
"BEGIN PKG_EXS.SERVICE_AUTH_PUT_INQUEUE(NEXSSERVICE => :NEXSSERVICE); END;",
|
||||
{ NEXSSERVICE: prms.nServiceId },
|
||||
"BEGIN PKG_EXS.SERVICE_AUTH_PUT_INQUEUE(NEXSSERVICE => :NEXSSERVICE, NFORCE => :NFORCE); END;",
|
||||
{ NEXSSERVICE: prms.nServiceId, NFORCE: prms.nForce },
|
||||
{ autoCommit: true }
|
||||
);
|
||||
} catch (e) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user