From ff1f195a2dc60302ee0736c6c3f827e110ef5dc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Mon, 22 Jun 2026 18:25:12 +0400 Subject: [PATCH] =?UTF-8?q?v0.5.171:=20IAM=20debug=20=D1=81=D1=82=D1=80?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D1=86=D1=8B=20=D1=82=D0=BE=D0=BB=D1=8C=D0=BA?= =?UTF-8?q?=D0=BE=20=D0=B4=D0=BB=D1=8F=20canAdmin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- v2/server.js | 26 +++++++++++++++----------- v2/src/config/index.js | 2 +- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index 0606095..ae78856 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ipwhitelist", - "version": "0.5.170", + "version": "0.5.171", "description": "IP WhiteList microservice for cloud provider", "main": "server.js", "scripts": { diff --git a/v2/server.js b/v2/server.js index 39f7e36..94ebc33 100644 --- a/v2/server.js +++ b/v2/server.js @@ -43,15 +43,16 @@ function createV2Router() { res.redirect('/login?returnTo=' + encodeURIComponent('/v2/app')); }); - // ── GET /v2/iam — отладка: показать IAM-данные из сессии ──────────── - router.get('/iam', (req, res) => { + // ── GET /v2/iam — отладка: IAM-данные из сессии (только админ) ──── + router.get('/iam', resolveContext, (req, res) => { + if (!req.canAdmin) return res.status(403).send('Доступ запрещён'); const u = req.session && req.session.user; - if (!u) return res.redirect('/v2/login'); res.send(debugPage(u, config.version)); }); - // ── GET /v2/iam_response — сырой ответ IAM ───────────────────────── - router.get('/iam_response', async (req, res) => { + // ── GET /v2/iam_response — сырой ответ IAM (только админ) ───────── + router.get('/iam_response', resolveContext, async (req, res) => { + if (!req.canAdmin) return res.status(403).send('Доступ запрещён'); const token = req.session && req.session.token; if (!token) return res.redirect('/v2/login'); try { @@ -64,8 +65,9 @@ function createV2Router() { } }); - // ── GET /v2/iam_response_test — IAM test стенд ────────────────────── - router.get('/iam_response_test', async (req, res) => { + // ── GET /v2/iam_response_test — IAM test стенд (только админ) ───── + router.get('/iam_response_test', resolveContext, async (req, res) => { + if (!req.canAdmin) return res.status(403).send('Доступ запрещён'); const token = req.session && req.session.token; if (!token) return res.redirect('/v2/login'); try { @@ -77,8 +79,9 @@ function createV2Router() { } }); - // ── GET /v2/iam_response_dev — IAM dev стенд ──────────────────────── - router.get('/iam_response_dev', async (req, res) => { + // ── GET /v2/iam_response_dev — IAM dev стенд (только админ) ─────── + router.get('/iam_response_dev', resolveContext, async (req, res) => { + if (!req.canAdmin) return res.status(403).send('Доступ запрещён'); const token = req.session && req.session.token; if (!token) return res.redirect('/v2/login'); try { @@ -90,8 +93,9 @@ function createV2Router() { } }); - // ── GET /v2/iam-gateway-test — сравнение auth-api vs lk-api-gateway ── - router.get('/iam-gateway-test', async (req, res) => { + // ── GET /v2/iam-gateway-test — сравнение API (только админ) ──────── + router.get('/iam-gateway-test', resolveContext, async (req, res) => { + if (!req.canAdmin) return res.status(403).send('Доступ запрещён'); const token = req.session && req.session.token; if (!token) return res.redirect('/v2/login'); diff --git a/v2/src/config/index.js b/v2/src/config/index.js index d10355d..208a302 100644 --- a/v2/src/config/index.js +++ b/v2/src/config/index.js @@ -8,7 +8,7 @@ // ═══════════════════════════════════════════════════════════════════════════════ module.exports = { - version: '0.5.170', + version: '0.5.171', // ── IAM ────────────────────────────────────────────────────────────────── iamUrl: process.env.V2_IAM_URL || 'https://auth-api.ngcloud.ru/api/v1/auth/user',