выполнить скрипт njs перед proxy_pass
Я настраиваю местоположение nginx, но мне нужно запустить скрипт, который обновляет requestBody перед перенаправлением:
Это моя конфигурация, но когда я ее развертываю, она все еще перенаправляется без обновления requestBody или возврата ошибки
Родительский nginx.conf:
// .....
js_import checkScript from /etc/nginx/js/scripts/checkScript.js;
// ....
В checkScript.js:
export default {
rights
}
function rights(r) {
const body = JSON.parse(r.requestBody);
if (body.isAdmin) {
body.rights = ['ADMIN'];
r.requestBody = JSON.stringify(body);
} else {
r.return(403, 'Not admin');
}
}
products.http-service.conf :
location /api/data/products/new {
set $gateway_role "dev.yumStore";
set $gateway_realm "yumStore";
auth_request /_tokenExchange;
# check rights and update body
js_content checkScript.rights;
proxy_set_header "Authorization" $gateway_auth_header;
# redirection
proxy_pass $OUTGATEWAY/api/data/products/new;
}
Спасибо за помощь!!