Cum se face cerere auth cu ssi

Există o html-pagină a articolului, accesibil tuturor. Este necesar să arătați pe acesta legătura
"Editare", disponibil numai pentru unii utilizatori.
Din articolul (test1.html) mă conectez la linkul SSI (test2.html), dar din anumite motive






drepturile la aceasta nu sunt verificate. Atunci când un acces direct din browser - verificat.
Cum de a forța să verificați la SSI?

(include virtuale, de asemenea, a încercat-o)

locație = /test2.html auth_request / test_auth;
>

locație = / test_auth return 403;
>

Se afișează la accesarea test1.html:
test1
test2


Se afișează când apelați test2.html (ar trebui):
<403>

Modulele de control al accesului (cum ar fi auth_basic, access și auth_request)
Nu verificați subcheile. Se presupune că toate cele necesare
drepturile au fost verificate în etapa procesării cererii principale.

Dacă doriți să se afișeze unele fragmente Ssi în funcție de
rezultatul auth_request, ar trebui să utilizați auth_request pentru
interogarea principală și returnați un rezultat pozitiv, în paralel
setarea unei variabile suplimentare prin intermediul auth_request_set. după
ce să verificați o variabilă cu, de exemplu, comenzile SSI "if".
Mai multe informații despre auth_request_set în documentație se găsesc aici:

Post de Maxim Dounin
Buna ziua!

Ei bine și da, voi nota în paranteze că este posibil pentru tine să auth_request aici
nu au nevoie de ea deloc, dar destul de mult <--#include. set="variable" -->,
mai multe detalii aici:

Post de Maxim Dounin
Ei bine și da, voi nota în paranteze că este posibil pentru tine să auth_request aici
nu au nevoie de ea deloc, dar destul de mult <--#include.
set = "variabila" ->,

1. Potrivit documentației, nu este clar care va fi "rezultatul interogării" în
variabilă? corp într-o variabilă în loc de ieșire pe ecran? $ upstream_http_ *?

2. Aici se utilizează? În test1.html, unde includeți
file = "test2.html"?

3. Probabil, în loc de auth_request este posibil din test1 să se conecteze mereu test2. A
deja la încercarea de procesare pentru a verifica drepturile și pentru a reveni sau o linie goală, sau
conținutul testului2

Post de Maxim Dounin
Ei bine și da, voi nota în paranteze că este posibil pentru tine să auth_request aici
nu au nevoie de ea deloc, dar destul de mult <--#include.






set = "variabila" ->,

1. Potrivit documentației, nu este clar care va fi "rezultatul interogării" în
variabilă? corp într-o variabilă în loc de ieșire pe ecran? $ upstream_http_ *?

Discurs despre corpul răspunsului.

Post de BorisK2
2. Aici se utilizează? În test1.html, unde includeți
file = "test2.html"?

Scrie rezultatul unui subcotare unei variabile, atunci
dacă o puteți verifica. Unde este făcut - nu contează,
variante de masă.

Post de BorisK2
3. Probabil, în loc de auth_request este posibil din test1 să se conecteze mereu test2. A
deja la încercarea de procesare pentru a verifica drepturile și pentru a reveni sau o linie goală, sau
conținutul testului2

Este vorba în primul rând de faptul că SSI în sine știe cum să subordoneze, și
în plus, auth_request - un sens special
Nu, puteți face totul cu SSI.

Post de Maxim Dounin
Dacă doriți să se afișeze unele fragmente Ssi în funcție de
rezultatul auth_request, ar trebui să utilizați auth_request pentru
interogarea principală și returnați un rezultat pozitiv, în paralel
setarea unei variabile suplimentare prin intermediul auth_request_set. după
ce să verificați o variabilă cu, de exemplu, comenzile SSI "if".

Mulțumesc pentru sfat!
Nu pot seta o variabilă: auth_request_set $ x_allow_test2
$ upstream_http_x_allow_test2;
Este întotdeauna goală. auth_request_set $ server $ upstream_http_server; prea
gol.

location = /test1.html auth_request / test_auth;
auth_request_set $ x_allow_test2 $ upstream_http_x_allow_test2;
>

locație = / test_auth add_header X-Allow-Test2 1;
return 200;
>


test1.html:
test1


Post de Maxim Dounin
Dacă doriți să se afișeze unele fragmente Ssi în funcție de
rezultatul auth_request, ar trebui să utilizați auth_request pentru
interogarea principală și returnați un rezultat pozitiv, în paralel
setarea unei variabile suplimentare prin intermediul auth_request_set. după
ce să verificați o variabilă cu, de exemplu, comenzile SSI "if".

Dacă este vorba de a pune o variabilă în cadrul
subquery direct de la config nginx, apoi în loc de
auth_request_set pur și simplu face un set, ceva de genul:

locație = / test_auth set $ x_allow_test2 1;
return 200;
>

Spațiul variabilelor pentru interogări și subcheiri este general, deci
Variabila setată în subansamblu va fi disponibilă în principal
cerere. Directiva directivă auth_request_set este necesară atunci când este vorba
despre variabile speciale, cum ar fi $ upstream_http_ *, care
pot avea valori diferite în funcție de locul în care se află
ei se întorc la el.

Prin urmare, am făcut a doua opțiune. Logica nu este html, ci în config, unde poți
utilizați rescrierea și cealaltă, astfel încât setul de drepturi și variabile să poată fi redus la
mai multe.

test1.html:
test1

config:
map $ cookie_user_id: $ request_uri $ permite default 0;
1234: /path/page1.html 1;
4567: /path/page1.html 1;
>

locație = /test2.html internă;
dacă ($ permite = 0) returnează 403;
>
>
>







Articole similare

Trimiteți-le prietenilor: