See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 9128|Vastuse: 0

[Allikas] Spring Cloud Gateway'sse sisse ehitatud filtritehased

[Kopeeri link]
Postitatud 07.02.2022 13:36:49 | | |
Sisseehitatud filtritehas

Siin on lihtne tabel kõigist Spring Cloud Gateway sisseehitatud filtritehastest, mis pole väga detailne, kuid mida saab kasutada kiire ülevaatena. Järgmiselt:

Filtritehas
funktsioon
parameeter
AddRequestHeader
Lisa algsele päringule päis
Päise nimi ja väärtus
AddRequestParameter
Lisa päringuparameetrid algsele päringule
Parameetri nimi ja väärtus
AddResponseHeader
Lisa algsele vastusele päis
Päise nimi ja väärtus
DedupeResponseHeader
Lükkab vastuse päises tagasi duplikaatväärtused
Päise nimi ja deduplikatsioonistrateegia, mida tuleb dedreplikeerida
Hystrix
Tutvusta marsruudil Hystrixi kaitselüliti kaitset
HystrixCommandi nimi
Varupäised
Lisa spetsiifiline erandinfo fallbackUri päringupäisse
Päise nimi
PrefixPath
Lisa algsele päringuteele prefiks
Eesliite tee
PreserveHostHeader
Lisa päringule preserveHostHeader=true omadus, mida marsruutimisfilter kontrollib, et otsustada, kas soovid saata algse hosti
ei
RequestRateLimiter
Päringute piiramiseks kasutatav piiramisalgoritm on token-ämber
keyResolver、rateLimiter、statusCode、denyEmptyKey、emptyKeyStatus
Suunamine Aadressile
Suuna algne päring määratud URL-ile
HTTP olekukood ja suunamise URL
RemoveHopByHopHeadersFilter
Eemalda IETF organisatsiooni poolt algse päringu jaoks ette nähtud päiste seeria
See on vaikimisi lubatud ja konfiguratsiooni kaudu saab määrata, millised päised ainult kustutada
RemoveRequestHeader
Kustuta algse päringu päis
Päise nimi
RemoveResponseHeader
Eemalda algse vastuse päis
Päise nimi
RewritePath
Kirjuta algne päringutee ümber
Algne raja regex ja ümberkirjutatud tee regex
RewriteResponseHeader
Kirjuta algses vastuses päis ümber
Päise nimi, väärtuse regulaaravaldis, ümberkirjutatud väärtus
SaveSession
Rakenda WebSession::save operatsiooni enne päringu edastamist
ei
secureHeaders
Lisa vastuse päiste seeria, mis toimivad algse vastuse turvalisusena
Ühtegi, nende turvareaktsioonipäiste väärtusi saab muuta
SetPath
Muuda algset päringuteed
Muudetud tee
SetResponseHeader
Muuda päise väärtust algses vastuses
Päise nimi, muudetud väärtus
SetStatus
Muuda algse vastuse olekukoodi
HTTP staatuskoodid, mis võivad olla numbrid või stringid
StripPrefix
Kasutatakse algse päringu tee kärpimiseks
Kasuta numbreid, et näidata, kui palju radu tuleb kärpida
Uuesti
Proovi uuesti erinevate vastuste jaoks
retries、statuses、methods、series
RequestSize
Määra maksimaalse lubatud soovitud pakettide suurus. Kui taotluspaketi suurus ületab seatud väärtuse, tagastatakse 413 Payload Too Large
Taotluspaketi suurus on baitides ja vaikimisi väärtus on 5M
ModifyRequestBody
Muuda algset päringu sisu enne taotluse edastamist
Muudetud päringu sisu
ModifyResponseBody
Muuda algse vastuskeha sisu
Muudetud vastuskeha sisu
Vaikimisi
Lisa filtrid kõigile marsruutidele
Filtritehase nimi ja väärtus

Nõuanded: Iga filtritehas vastab rakendusklassile ja needKlassi nimi peab lõppema GatewayFilterFactorySee on Spring Cloud Gateway konventsioon, näiteks AddRequestHeaderile vastav rakendusklass on AddRequestHeaderGatewayFilterFactory. Sõbrad, keda lähtekood huvitab, saavad selle reegli järgi spetsiifilisi klassinimesid ühendada, et leida nende sisseehitatud filtritehaste rakenduskood.

1、AddRequestHeader GatewayFilter Factory

Lisa algsele päringule päis, konfiguratsiooni näide:


Lisa algsele päringule päringu päis nimega X-Request-Foo väärtusega Bar

2、AddRequestParameter GatewayFilter Factory

Lisa päringuparameetrid ja väärtused algsele päringule, konfiguratsiooninäide:


Lisa algsele päringule parameeter nimega foo, mille väärtus on bar, st: foo=bar

3、AddResponseHeader GatewayFilter Factory

Lisa algsele vastusele päis, konfiguratsiooni näide:


Lisa algsele vastusele vastuse päis nimega X-Request-Foo väärtusega Bar

4、DedupeResponseHeader GatewayFilter Factory

DedupeResponseHeader saab eemaldada defektsete väärtuste vastuste päistest vastavalt konfigureeritud päise nimele ja deduplikeerimispoliitikale, mis on Spring Cloud Greenwich SR2 uus funktsioon ja mida ei saa selle versiooni all kasutada.

MeKui CORS (Lahendav Ristdomeenide) päis on seatud nii väravale kui mikroteenusele, ja konfiguratsiooni ei tehta, siis saadakse CORS-päise väärtus, kui taotletakse -> Gateway -> mikroteenust, see saab olema nii:


Access-Control-Allow-Credentials: true, true
Access-Control-Allow-Origin: https://musk.mars, https://musk.mars
Näete, et nende kahe päise väärtused on dubleeritud; kui soovite nende väärtusi deduplicateerida, peate kasutama DedupeResponseHeaderit, konfiguratsiooninäide:

Deduplikatsiooni strateegia:

  • RETAIN_FIRST: Vaikimisi hoia esimene väärtus
  • RETAIN_LAST: Säilita viimane väärtus
  • RETAIN_UNIQUE: Hoia kõik unikaalsed väärtused esimeses järjekorras


Kui soovid filtritehasest põhjalikumat arusaama, soovitatakse lugeda filtritehase lähtekoodi, sest lähtekoodis on üksikasjalikud märkmed ja näited, mis on parem kui ametlikus dokumentatsioonis: org.springframework.cloud.gateway.filter.factory.DedupeResponseHeaderGatewayFilterFactory

5、Hystrix GatewayFilter Tehas

Tutvustame Hystrixi kaitselülitite kaitset marsruutide jaoks, konfiguratsiooni näide:


Hystrix on Spring Cloudi esimese põlvkonna tõrkekindlad komponendid, kuid see on jõudnud hooldusrežiimi ning Hystrix eemaldatakse tulevikus Spring Cloudi poolt, asendades selle Alibaba Sentinel/Resilience4J-ga. Seega see artikkel ei lähe detailidesse, kui oled huvitatud, võid vaadata ametlikku dokumentatsiooni: Hystrix GatewayFilter Factory

6、FallbackHeaders GatewayFilter Factory

Samuti toetab eelnevas jaotises kirjeldatud filtritehas konfiguratsiooniparameetrit: fallbackUri, mida kasutatakse päringute edastamiseks kindlale URI-le, kui erand tekib. FallbackHeadersi filtritehas saab lisada päise, kui päringut edastatakse URI-le, ning selle päise väärtus on konkreetne erandinfo. Konfiguratsiooni näide:


Ma ei hakka siin detailidesse laskuma, kui oled huvitatud, võid vaadata ametlikku dokumentatsiooni: FallbackHeaders GatewayFilter Factory

7、PrefixPath GatewayFilter Factory

Lisa algsele päringuteele prefiksi tee, konfiguratsiooni näide:


See konfiguratsioon suunab külastuse aadressile ${GATEWAY_URL}/hellohttps://example.org/mypath/hello

8、PreserveHostHeader GatewayFilter Factory

Lisa päringule preserveHostHeader=true omadus, mida marsruutimisfilter kontrollib, et otsustada, kas saata algne hosti päis. Konfiguratsiooni näide:


Kui pole seadistatud, siis päist nimega Host juhib Http klient

9、RequestRateLimiter GatewayFilter Factory

Seda kasutatakse päringute piiramiseks ning piiramisalgoritm on token-ämber. Konfiguratsiooni näide:


10、RedirectTo GatewayFilter Factory

Suuna algne päring määratud URL-ile, konfiguratsiooninäide:


See konfiguratsioon suunab ligipääsu aadressile ${GATEWAY_URL}/hello https://acme.org/hello , ja kanna ühteLocation:http://acme.orgPäis, samas kui HTTP staatuskood, mis kliendile tagastab, on 302

Märkmed:

HTTP olekukood peaks olema 3xx, nt 301

URL peab olema legitiimne URL, mis toimib asukohapäise väärtusena

11、RemoveHopByHopHeadersFilter GatewayFilter Factory

IETF organisatsiooni poolt määratud algse taotluse eemaldamiseks on vaikimisi kustutatud päised järgmised:


  • Ühendus
  • Hoia elus
  • Proxy-autentimine
  • Proxy-autoriseerimine
  • TE
  • Haagis
  • Ülekande-kodeerimine
  • Uuendada


Saad määrata, millised päised kustutatakse ainult konfiguratsiooni kaudu, konfiguratsiooni näide:


12、RemoveRequestHeader GatewayFilter Factory

Algse päringu päise eemaldamiseks seadistage näide:


Eemalda algsest päringust taotluse päis nimega X-Request-Foo

13、RemoveResponseHeader GatewayFilter Factory

Algse vastuse päise eemaldamiseks konfigureeri näide:


Eemalda vastuse päis nimega X-Request-Foo algsest vastusest

14、RewritePath GatewayFilter Factory

Algse päringutee ülekirjutamine regulaaravaldisega, konfiguratsiooninäide:


See konfiguratsioon võimaldab /foo/bar kaudu kirjutada tee ümber /bar-ile ja edastada see ehk suunata edasi https://example.org/bar。 Pane tähele, et YAML süntaksi tõttu tuleb kasutada $\ asemel $

15、RewriteResponseHeader GatewayFilter Factory

Kirjuta algses vastuses päis ümber, konfiguratsiooni näide:


Selle konfiguratsiooni tähtsus seisneb selles, et kui X-Response-Foo väärtus vastuse päises on /42?user=ford&password=omg!what&flag=true, siis kirjutatakse see ümber /42?user=ford&password=***&flag=true vastavalt konfigureeritud väärtusele, st password=omg!what kirjutatakse ümber password=***

16、SaveSession GatewayFilter Factory

Enne päringu edastamist rakenda WebSession::save operatsioon, konfiguratsiooni näide:


Seda kasutatakse peamiselt edasilükatud andmete salvestamiseks (andmeid ei säilitata kohe) nagu Spring Session, ning soovib tagada, et sessiooni olek salvestatakse enne taotluse edastamist. Kui integreerid Spring Secutiry Spring Sessioni ja soovid tagada, et kogu turvainfo edastatakse järgnevatele masinatele, pead selle filtri seadistama.

17、secureHeaders GatewayFilter Factory

SecureHeaders filtritehas põhineb peamiselt selle blogi soovitustel, lisades rea vastusepäiseid, mis mängivad algses vastuses turvarolli. Vaikimisi lisatakse järgmised päised (sh väärtused):


  • 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


Kui soovite nende päiste väärtusi muuta, peate kasutama nende päiste vastavaid sufikseid järgmiselt:

  • xss-kaitse-päis
  • range-transpordi-turvalisus
  • Raam-valikud
  • sisu-tüübi-valikud
  • Viitaja poliitika
  • sisu-turvalisus-poliitika
  • Allalaadimisvõimalused
  • lubatud-domeenideüle-poliitikad


Konfiguratsiooni näide:


Kui soovid teatud päised keelata, võid kasutada järgmist seadistust:

18、SetPath GatewayFilter Factory

Muuda algset päringuteed ja seadista näide:


See konfiguratsioon suunab selle aadressile ${GATEWAY_URL}/foo/bar, kui seda kasutataksehttps://example.org/bar , see tähendab, et algne /foo/bar muudeti /bar-iks

19、SetResponseHeader GatewayFilter Factory

Muuda algses vastuses päise väärtust, seadista näide:


Muuda X-Response-Foo väärtust algses vastuses Barile

20、SetStatus GatewayFilter Factory

Muuda algse vastuse olekukoodi, konfiguratsiooni näide:


SetStatusd väärtus võib olla kas arv või string. Aga see peab olema väärtus Spring HttpStatus loendamisklassis. Mõlemad ülaltoodud konfiguratsioonid võivad tagastada HTTP staatuskoodi 401.

21、StripPrefix GatewayFilter Factory

Algse päringu tee kärpimiseks konfiguratsiooninäide:


Nagu ülaltoodud konfiguratsioonis näidatud, kui soovitud tee on /name/bar/foo, siis see lühendatakse /foo ja edastatakse, st lõigatakse kaks teed.

22、Retry GatewayFilter Factory

Proovi uuesti erinevate vastuste jaoks, nt HTTP olekukoodide puhul, konfiguratsiooni näide:


Järgmisi parameetreid saab konfigureerida:

  • Kordused: Korduskatsete arv
  • olekud: olekukood, mida tuleb uuesti proovida, seatud org.springframework.http.HttpStatus
  • Meetodid: Päringu meetod, mida tuleb uuesti proovida, väärtusega org.springframework.http.HttpMethod
  • series:HTTP olekukoodi jada, väärtusega org.springframework.http.HttpStatus.Series


23、RequestSize GatewayFilter Factory

Määra maksimaalne lubatud taotluspakettide suurus, konfiguratsiooninäide:


Kui taotluspaketi suurus ületab seatud väärtuse, tagastatakse 413 Payload Too Large koos errorMessage'iga

24、Modify Request Body GatewayFilter Factory

Muuda algset päringu sisu enne taotluse edastamist, filtritehast saab seadistada ainult koodiga, mitte konfiguratsioonifailis. Koodinäide:


Nõuanded: See filtritehas on BETA olekus ja API võib tulevikus muutuda.Palun kasutage tootmiskeskkonda ettevaatlikult

25、Muuda vastuskeha GatewayFilter Factory

Filtritehast saab kasutada ka algse vastuse keha sisu muutmiseks ning filtritehast saab seadistada ainult koodi kaudu, mitte konfiguratsioonifailis. Koodinäide:


Nõuanded: See filtritehas on BETA olekus, API võib tulevikus muutuda, palun kasutage seda tootmiskeskkonnas ettevaatlikult

26、Default Filters

Vaikimisi filtreid kasutatakse filtritehase lisamiseks kõigile marsruutidele, st näiteks läbimiseksVaikimisi filtri poolt seadistatud filtritehas kehtib kõigile marsruutidele。 Konfiguratsiooni näide:


(Lõpp)




Eelmine:Dockeri logid täidavad kettaid ja andmete migratsiooni
Järgmine:Java dünaamiliselt spliced SQL laused prevent database injection
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com