Код здесь работает для основного случая, когда URL-адреса известны заранее.Как работать с динамической защитой URL-адресов с помощью Keycloak после добавления промежуточного ПО и запуска экспресс-приложения?Я думал об обработке чтения новых URL из файла некоторым модулем node.js, который будет генерировать событие, а затем код ниже будет обрабатывать событие.В коде обработчика событий будет добавлен вызов app.all('/new url', keycloak.protect())
.Я попробовал это, но это не работает, как ожидалось, потому что app.use('/lap', [some_midleware])
перед новой app.all('/new url', keycloak.protect()
Единственный способ, которым я думаю, - это изменить app._router.stack
, вставив новое промежуточное программное обеспечение перед some_midleware
var Keycloak = require('keycloak-connect');
var hogan = require('hogan-express');
var express = require('express');
var session = require('express-session');
var fs = require()
var app = express();
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
var memoryStore = new session.MemoryStore();
app.use(session({
secret: 'mySecret',
resave: false,
saveUninitialized: true,
store: memoryStore
}));
var keycloak = new Keycloak({
store: memoryStore
});
app.use(keycloak.middleware({
logout: '/logout',
admin: '/',
protected: '/protected/resource'
}));
app.all('/url', keycloak.protect())
app.all('*', [some_midleware])