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:
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)
|