From 24f1d5af7767886da914d5ff4fa058643117141a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Mon, 22 Jun 2026 17:23:56 +0400 Subject: [PATCH] =?UTF-8?q?v0.5.164:=20=D0=B7=D0=B0=D0=BA=D0=BE=D0=BC?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D1=8B=20=D1=81=D1=82=D0=B0=D1=80=D1=8B=D0=B5=20UI/Api/export,?= =?UTF-8?q?=20=D0=B2=D1=81=D1=91=20=D0=B2=20v2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- server.js | 34 ++++++++-------------------------- v2/src/config/index.js | 2 +- 3 files changed, 10 insertions(+), 28 deletions(-) diff --git a/package.json b/package.json index 1dab921..f4261b9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ipwhitelist", - "version": "0.5.163", + "version": "0.5.164", "description": "IP WhiteList microservice for cloud provider", "main": "server.js", "scripts": { diff --git a/server.js b/server.js index cd2804b..6145dea 100644 --- a/server.js +++ b/server.js @@ -31,7 +31,7 @@ const { authLimiter } = require('./src/middleware/rateLimit'); const { createSessionMiddleware } = require('./src/middleware/session'); const { aggregateCIDRs } = require('./src/validators'); const { CSP_DIRECTIVES } = require('./src/middleware/csp'); -const { createUiRouter } = require('./ui/index'); +// const { createUiRouter } = require('./ui/index'); // ⛔ устарело, всё в v2 const app = express(); const PORT = process.env.PORT || 3000; @@ -102,26 +102,8 @@ async function start() { // JWKS endpoint для валидации токенов внешними сервисами (только в mock-режиме) if (auth.jwksHandler) app.get('/.well-known/jwks.json', auth.jwksHandler); - // ── /export — публичный (ВРЕМЕННО без авторизации) ─────────────────────── - // 🔮 КОГДА Keycloak SSO: заменить на app.use('/export', auth.bearerMiddleware, ...) - app.get('/export', - /* 🔮 auth.bearerMiddleware, */ - async (req, res) => { - try { - const cidrs = await q.getExportCIDRs(); - const aggregated = aggregateCIDRs(cidrs); - const text = aggregated.join('\n') + (aggregated.length ? '\n' : ''); - res.set('Content-Type', 'text/plain; charset=utf-8'); - const fname = (req.query.filename || 'white-list.txt').replace(/[^\w\-_. ]/g, '_'); - const disp = req.query.view === '1' ? 'inline' : 'attachment'; - res.set('Content-Disposition', disp + '; filename="' + fname + '"'); - res.send(text); - } catch (e) { - console.error('[export] Error:', e); - res.status(500).send('Ошибка экспорта'); - } - } - ); + // ⛔ Старый /export — удалён, всё в /v2/export + // app.get('/export', async (req, res) => { ... }); // ── OIDC-роуты (Keycloak) — активны ТОЛЬКО когда KC_CLIENT_ID задан ───── // В mock-режиме (сейчас): заглушки, работает ui/routes/auth.js @@ -129,9 +111,9 @@ async function start() { const { createRouter: createOidcRouter } = require('./src/routes/oidc'); app.use('/', createOidcRouter({ auth })); - // ── REST API v1 (Bearer JWT, без сессий/CSRF) ───────────────────────────── - const { createApiRouter } = require('./src/api/index'); - app.use('/api/v1', createApiRouter({ auth, q })); + // ⛔ Старый API v1 — удалён, всё в v2 + // const { createApiRouter } = require('./src/api/index'); + // app.use('/api/v1', createApiRouter({ auth, q })); // ── UI-слой: SSR через EJS, данные из /api/v1/* ─────────────────────────── // Монтируется ПОСЛЕ /api/v1/ — не перехватывает API-запросы. @@ -140,8 +122,8 @@ async function start() { app.get('/', (req, res) => res.redirect('/v2/app')); const { createV2Router } = require('./v2/server'); app.use('/v2', createV2Router()); - // Хранит Bearer token в сессии, рендерит те же views/*.ejs. - app.use('/', createUiRouter({ auth, MOCK_USERS, authLimiter })); + // ⛔ Старый UI-слой — удалён, всё в v2 + // app.use('/', createUiRouter({ auth, MOCK_USERS, authLimiter })); // ── Общий обработчик ошибок ─────────────────────────────────────────────── // eslint-disable-next-line no-unused-vars diff --git a/v2/src/config/index.js b/v2/src/config/index.js index 53cdf27..69dcbeb 100644 --- a/v2/src/config/index.js +++ b/v2/src/config/index.js @@ -8,7 +8,7 @@ // ═══════════════════════════════════════════════════════════════════════════════ module.exports = { - version: '0.5.163', + version: '0.5.164', // ── IAM ────────────────────────────────────────────────────────────────── iamUrl: process.env.V2_IAM_URL || 'https://auth-api.ngcloud.ru/api/v1/auth/user',