выполнить скрипт 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;
}

Спасибо за помощь!!

0 ответов

Другие вопросы по тегам