Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 9128|Atbildi: 0

[Avots] Filtrējiet rūpnīcas, kas iebūvētas Spring Cloud Gateway

[Kopēt saiti]
Publicēts 07.02.2022 13:36:49 | | |
Iebūvēta filtru rūpnīca

Šeit ir vienkārša tabula ar visām filtru rūpnīcām, kas iebūvētas Spring Cloud Gateway, kas nav ļoti detalizēta, bet to var izmantot kā ātru pārskatu. Šādi:

Filtru rūpnīca
funkcija
Parametru
AddRequestHeader
Galvenes pievienošana sākotnējam pieprasījumam
Galvenes nosaukums un vērtība
Pievienot Pieprasījuma parametru
Pieprasījuma parametru pievienošana sākotnējam pieprasījumam
Parametra nosaukums un vērtība
Pievienot atbildes galveni
Galvenes pievienošana sākotnējai atbildei
Galvenes nosaukums un vērtība
DedupeResponseHeader
Atbildes galvenē noraida vērtību dublikātus
Galvenes nosaukums un dublikātu novēršanas stratēģija, kas jānoņem
Hystrix
Iepazīstiniet ar Hystrix slēdža aizsardzību maršrutam
HystrixCommand nosaukums
Rezerves galvenes
Specifiskas izņēmuma informācijas pievienošana rezerves pieprasījuma galvenei
Galvenes nosaukums
Prefiksa ceļš
Prefiksa pievienošana sākotnējam pieprasījuma ceļam
Prefiksa ceļš
PreserveHostHeader
Pievienojiet pieprasījumam rekvizītu preserveHostHeader=true, ko maršrutēšanas filtrs pārbauda, lai izlemtu, vai vēlaties nosūtīt sākotnējo resursdatoru
ne
Pieprasījuma ātruma ierobežotājs
Tiek izmantots, lai ierobežotu pieprasījumus, droseļošanas algoritms ir žetonu spainis
keyResolver、rateLimiter、statusCode、denyEmptyKey、emptyKeyStatus
Novirzīt uz
Sākotnējā pieprasījuma novirzīšana uz norādīto URL
HTTP statusa kods un novirzīšanas URL
RemoveHopByHopHeadersFilter
Noņemiet galveņu sēriju, ko IETF organizācija noteikusi sākotnējam pieprasījumam
Tas ir iespējots pēc noklusējuma, un jūs varat norādīt, kuras galvenes tikai dzēst, izmantojot konfigurāciju
RemoveRequestHeader
Sākotnējā pieprasījuma galvenes dzēšana
Galvenes nosaukums
RemoveResponseHeader
Sākotnējās atbildes galvenes noņemšana
Galvenes nosaukums
Pārrakstīšanas ceļš
Sākotnējā pieprasījuma ceļa pārrakstīšana
Sākotnējā ceļa regulārā izteiksme un pārrakstītā ceļa regulārā izteiksme
RewriteResponseHeader
Galvenes pārrakstīšana sākotnējā atbildē
Galvenes nosaukums, vērtības regulārā izteiksme, pārrakstītā vērtība
Saglabāt sesiju
Operācijas WebSession::save ieviešana pirms pieprasījuma pārsūtīšanas
ne
secureHeaders
Atbilžu galveņu sērijas pievienošana, kas darbojas kā drošība sākotnējai atbildei
Nav, varat modificēt šo drošības atbilžu galveņu vērtības
Iestatīt ceļu
Sākotnējā pieprasījuma ceļa modificēšana
Modificēts ceļš
SetResponseHeader
Galvenes vērtības modificēšana sākotnējā atbildē
Galvenes nosaukums, modificētā vērtība
Iestatīt statusu
Sākotnējās atbildes statusa koda modificēšana
HTTP statusa kodi, kas var būt skaitļi vai virknes
StripPrefix
Izmanto, lai saīsinātu sākotnējā pieprasījuma ceļu
Izmantojiet skaitļus, lai norādītu saīsināmo ceļu skaitu
Mēģināt vēlreiz
Mēģināt atkārtoti dažādām atbildēm
Retries、Statuses、Methods、Series
Pieprasījuma lielums
Iestatiet maksimālo pieprasīto pakešu lielumu, ko atļauts saņemt. Ja pieprasījuma pakotnes lielums pārsniedz iestatīto vērtību, tiek atgriezta 413 Lietderīgā slodze pārāk liela
Pieprasījuma pakotnes lielums ir baitos, un noklusējuma vērtība ir 5M
Modificēt pieprasījuma ķermeni
Sākotnējā pieprasījuma pamatteksta satura modificēšana pirms pieprasījuma pārsūtīšanas
Modificētais pieprasījuma pamatteksts
ModifyResponseBody
Sākotnējās atbildes pamatteksta satura modificēšana
Modificētais atbildes pamatteksta saturs
Noklusējuma
Filtru pievienošana visiem maršrutiem
Filtra rūpnīcas nosaukums un vērtība

Padomi: Katra filtru rūpnīca atbilst ieviešanas klasei, un šieKlases nosaukumam jābeidzas ar GatewayFilterFactoryŠī ir Spring Cloud Gateway konvencija, piemēram, AddRequestHeader atbilstošā ieviešanas klase ir AddRequestHeaderGatewayFilterFactory. Draugi, kurus interesē avota kods, var savienot konkrētus klašu nosaukumus saskaņā ar šo noteikumu, lai atrastu šo iebūvēto filtru rūpnīcu ieviešanas kodu.

1 、 AddRequestHeader vārtejas filtru rūpnīca

Pievienojiet galveni sākotnējam pieprasījumam, konfigurācijas piemērs:


Pieprasījuma galvenes ar nosaukumu X-Request-Foo ar vērtību Bar pievienošana sākotnējam pieprasījumam

2 、 AddRequestParameter vārtejas filtru rūpnīca

Pievienojiet pieprasījuma parametrus un vērtības sākotnējam pieprasījumam, konfigurācijas piemērs:


Pievienojiet sākotnējam pieprasījumam parametru ar nosaukumu foo ar vērtību bar, t.i.: foo=bar

3 、 AddResponseHeader vārtejas filtru rūpnīca

Galvenes pievienošana sākotnējai atbildei, konfigurācijas piemērs:


Atbildes galvenes ar nosaukumu X-Request-Foo ar vērtību Bar pievienošana sākotnējai atbildei

4 、 DedupeResponseHeader vārtejas filtru rūpnīca

DedupeResponseHeader var noņemt vērtību dublikātus atbilžu galvenēs, pamatojoties uz konfigurēto galvenes nosaukumu un dublikātu novēršanas politiku, kas ir jauns līdzeklis, ko nodrošina Spring Cloud Greenwich SR2 un ko nevar izmantot šajā versijā.

MēsJa CORS (Solving Cross-Domain) galvene ir iestatīta gan vārtejā, gan mikropakalpojumā, ja konfigurācija netiek veikta, tad CORS galvenes vērtība, kas iegūta, pieprasot -> vārteju -> mikropakalpojumu, tas būs šādi:


Access-Control-Allow-Credentials: true, true
Access-Control-Allow-Origin: https://musk.mars, https://musk.mars
Jūs varat redzēt, ka šo divu galveņu vērtības ir dublētas, ja vēlaties dedublēt šo divu galveņu vērtības, jums jāizmanto DedupeResponseHeader, konfigurācijas piemērs:

Dublēšanas stratēģija:

  • RETAIN_FIRST: Noklusējums, saglabājiet pirmo vērtību
  • RETAIN_LAST: Pēdējās vērtības saglabāšana
  • RETAIN_UNIQUE: Saglabājiet visas unikālas vērtības tādā secībā, kādā tās parādījās pirmo reizi


Ja vēlaties iegūt visaptverošāku izpratni par filtru rūpnīcu, ieteicams izlasīt filtru rūpnīcas avota kodu, jo avota kodā ir detalizētas piezīmes un piemēri, kas ir labāki par oficiālo dokumentāciju: org.springframework.cloud.gateway.filter.factory.DedupeResponseHeaderGatewayFilterFactory

5 、 Hystrix vārtejas filtru rūpnīca

Iepazīstinām ar Hystrix slēdža aizsardzību maršrutiem, konfigurācijas piemērs:


Hystrix ir pirmās paaudzes kļūdu izturīgie Spring Cloud komponenti, taču tas ir pārgājis apkopes režīmā, un Hystrix nākotnē tiks noņemts ar Spring Cloud, aizstājot ar Alibaba Sentinel/Resilience4J. Tātad šis raksts netiks detalizēti aplūkots, ja jūs interesē, varat atsaukties uz oficiālo dokumentāciju: Hystrix GatewayFilter Factory

6 、 FallbackHeaders vārtejas filtru rūpnīca

Atbalstot arī Hystrix, iepriekšējā sadaļā aprakstītā filtru rūpnīca atbalsta konfigurācijas parametru: fallbackUri, kas tiek izmantots, lai pārsūtītu pieprasījumus uz konkrētu URI, ja rodas izņēmums. FallbackHeaders filtru rūpnīca var pievienot galveni, pārsūtot pieprasījumu uz URI, un šīs galvenes vērtība ir konkrētā izņēmuma informācija. Konfigurācijas piemērs:


Es šeit neiedziļināšos, ja jūs interesē, varat atsaukties uz oficiālo dokumentāciju: FallbackHeaders GatewayFilter Factory

7 、 PrefixPath GatewayFilter rūpnīca

Pievienojiet prefiksa ceļu sākotnējam pieprasījuma ceļam, konfigurācijas piemērs:


Šī konfigurācija padara ${GATEWAY_URL}/hello apmeklējumu pārsūtītu uzhttps://example.org/mypath/hello

8 、 PreserveHostHeader vārtejas filtru rūpnīca

Pievienojiet pieprasījumam rekvizītu preserveHostHeader=true, ko maršrutēšanas filtrs pārbauda, lai izlemtu, vai sūtīt sākotnējo resursdatora galveni. Konfigurācijas piemērs:


Ja tas nav iestatīts, galveni ar nosaukumu Host kontrolēs Http klients

9 、 RequestRateLimiter vārtejas filtru rūpnīca

To izmanto, lai ierobežotu pieprasījumus, un droseļošanas algoritms ir žetonu spainis. Konfigurācijas piemērs:


10 、 RedirectTo GatewayFilter rūpnīca

Novirziet sākotnējo pieprasījumu uz norādīto URL, konfigurācijas piemērs:


Šī konfigurācija ļauj piekļūt ${GATEWAY_URL}/hello novirzīt uz https://acme.org/hello un nēsā vienuLocation:http://acme.orgGalvene, bet HTTP statusa kods, kas atgriež klientu, ir 302

Piezīmes:

HTTP statusa kodam jābūt 3xx, piemēram, 301

URL ir jābūt likumīgam URL, kas kalpo kā atrašanās vietas galvenes vērtība

11 、 RemoveHopByHopHeadersFilter GatewayFilter Factory

Sākotnējam pieprasījumam noņemt IETF organizācijas norādīto galveņu sēriju noklusējuma izdzēstās galvenes ir šādas:


  • Sakars
  • Saglabājiet dzīvu
  • Starpniekservera autentifikācija
  • Pilnvarojuma autorizācija
  • TE
  • Piekabe
  • Pārsūtīšanas kodēšana
  • Jaunināšanas


Varat norādīt, kuras galvenes tiek izdzēstas tikai konfigurācijas veidā, konfigurācijas piemērs:


12 、 RemoveRequestHeader GatewayFilter rūpnīca

Lai noņemtu sākotnējā pieprasījuma galveni, konfigurējiet piemēru:


Noņemiet pieprasījuma galveni ar nosaukumu X-Request-Foo no sākotnējā pieprasījuma

13 、 RemoveResponseHeader GatewayFilter rūpnīca

Lai noņemtu sākotnējās atbildes galveni, konfigurējiet piemēru:


Atbildes galvenes ar nosaukumu X-Request-Foo noņemšana no sākotnējās atbildes

14 、 RewritePath vārtejas filtru rūpnīca

Sākotnējā pieprasījuma ceļa ignorēšana ar regulāro izteiksmi, konfigurācijas piemērs:


Šī konfigurācija ļauj piekļūt /foo/bar, lai pārrakstītu ceļu uz /bar un pārsūtītu to, t.i., pārsūtītu uz https://example.org/bar。 Ņemiet vērā, ka YAML sintakses dēļ $ vietā ir jāizmanto $\

15 、 RewriteResponseHeader GatewayFilter rūpnīca

Pārrakstiet galveni sākotnējā atbildē, konfigurācijas piemērs:


Šīs konfigurācijas nozīme ir tāda, ka, ja X-Response-Foo vērtība atbildes galvenē ir /42?user=ford&password=omg!what&flag=true, tad tā tiks pārrakstīta uz /42?user=ford&password=****&flag=true atbilstoši konfigurētajai vērtībai, tas ir, password=omg!what tiks pārrakstīts uz paroli=***

16 、 SaveSession vārtejas filtru rūpnīca

Pirms pieprasījuma pārsūtīšanas izpildiet WebSession::save operāciju, konfigurācijas piemērs:


To galvenokārt izmanto atliktai datu glabāšanai (dati netiek saglabāti uzreiz), piemēram, pavasara sesijai, un vēlas nodrošināt, ka sesijas stāvoklis tiek saglabāts pirms pieprasījuma pārsūtīšanas. Ja integrējat pavasara secību pavasara sesijā un vēlaties nodrošināt, ka visa drošības informācija tiek pārsūtīta uz pakārtotām mašīnām, jums ir jākonfigurē šis filtrs.

17 、 drošas galvenes vārtejas filtru rūpnīca

SecureHeaders filtru rūpnīca galvenokārt balstās uz šajā emuārā sniegtajiem ieteikumiem, pievienojot virkni atbilžu galveņu, kurām sākotnējā atbildē ir drošības loma. Pēc noklusējuma tiek pievienotas šādas galvenes (ieskaitot vērtības):


  • X-Xss-Protection:1; mode=block
  • Strict-Transport-Security:max-age=631138519
  • X-Frame-Options:DENY
  • X-Content-Type-Options:nosniff
  • Referrer-Policy:no-referrer
  • Content-Security-Policy:default-src 'self' https:; font-src 'self' https: data:; img-src 'self' https: data:; object-src 'none'; script-src https:; style-src 'self' https: 'unsafe-inline'
  • X-Download-Options:noopen
  • X-Permitted-Cross-Domain-Policies:none


Ja vēlaties modificēt šo galvenes vērtības, tad jums jāizmanto atbilstošie šo galvenes sufiksi šādi:

  • xss-aizsardzība-galvene
  • stingra transporta drošība
  • rāmja opcijas
  • satura tipa opcijas
  • Ieteikuma politika
  • satura drošības politika
  • lejupielādes iespējas
  • Atļautās starpdomēnu politikas


Konfigurācijas piemērs:


Ja vēlaties atspējot noteiktas galvenes, varat izmantot šādu konfigurāciju:

18 、 SetPath vārtejas filtra rūpnīca

Modificējiet sākotnējo pieprasījuma ceļu un konfigurējiet piemēru:


Šī konfigurācija padara to pārsūtītu uz ${GATEWAY_URL}/foo/bar, kad tam piekļūsthttps://example.org/bar , tas ir, oriģinālais /foo/bar tika mainīts uz /bar

19 、 SetResponseHeader GatewayFilter rūpnīca

Modificējiet galvenes vērtību sākotnējā atbildē, konfigurējiet piemēru:


Modificējiet X-Response-Foo vērtību sākotnējā atbildē uz Bar

20 、 SetStatus GatewayFilter rūpnīca

Modificējiet sākotnējās atbildes statusa kodu, konfigurācijas piemērs:


SetStatusd vērtība var būt skaitlis vai virkne. Bet tai jābūt vērtībai pavasara HttpStatus uzskaitījuma klasē. Abas iepriekš minētās konfigurācijas var atgriezt HTTP statusa kodu 401.

21 、 StripPrefix vārtejas filtra rūpnīca

Lai saīsinātu sākotnējā pieprasījuma ceļu, konfigurācijas piemērs:


Kā parādīts iepriekš minētajā konfigurācijā, ja pieprasītais ceļš ir /name/bar/foo, tad tas tiks saīsināts uz /foo un pārsūtīts, tas ir, 2 ceļi tiks saīsināti.

22 、 Atkārtoti mēģiniet GatewayFilter rūpnīcu

Mēģiniet atkārtoti saņemt dažādas atbildes, piemēram, HTTP statusa kodiem, konfigurācijas piemērs:


Var konfigurēt šādus parametrus:

  • atkārtojumi: atkārtotu mēģinājumu skaits
  • statuses: statusa kods, kas jāatkārto, iestatīts org.springframework.http.HttpStatus
  • metodes: pieprasījuma metode, kas jāatjauno ar vērtību org.springframework.http.HttpMethod
  • sērija:HTTP statusa koda secība ar vērtību org.springframework.http.HttpStatus.Series


23 、 RequestSize vārtejas filtru rūpnīca

Iestatiet maksimālo pieprasījumu pakešu lielumu, konfigurācijas piemērs:


Ja pieprasījuma pakotnes lielums pārsniedz iestatīto vērtību, tiek atgriezts 413 Payload Too Large kopā ar errorMessage

24 、 Modificēt pieprasījuma ķermeņa vārtejas filtru rūpnīcu

Pirms pieprasījuma pārsūtīšanas modificējiet sākotnējo pieprasījuma saturu, filtru rūpnīcu var konfigurēt tikai pēc koda, nevis konfigurācijas failā. Koda piemērs:


Padomi: Šī filtru rūpnīca ir BETA stāvoklī, un API nākotnē var mainīties.Lūdzu, izmantojiet ražošanas vidi piesardzīgi

25 、 Modificēt atbildes korpusa vārtejas filtru rūpnīcu

Filtru rūpnīcu var izmantot arī, lai modificētu sākotnējās atbildes pamatteksta saturu, un filtra rūpnīcu var konfigurēt tikai ar kodu, nevis konfigurācijas failā. Koda piemērs:


Padomi: Šī filtru rūpnīca ir BETA stāvoklī, API nākotnē var mainīties, lūdzu, izmantojiet to piesardzīgi ražošanas vidē

26 、 Noklusējuma filtri

Noklusējuma filtri tiek izmantoti, lai pievienotu filtru rūpnīcu visiem maršrutiem, tas ir, lai nodotuNoklusējuma filtra rūpnīcā konfigurētais filtrs tiks piemērots visiem maršrutiem。 Konfigurācijas piemērs:


(Beigas)




Iepriekšējo:Docker žurnāli aizpilda diskus un datu migrāciju
Nākamo:Java dinamiski savienoti SQL paziņojumi novērš datu bāzes injekciju
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com