精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

SpringCloud Gateway 30 個內置過濾器,少寫 80% 重復代碼

開發 開發工具
其實在 Spring Cloud Gateway 本身內置了很多通用的過濾器組件,有些功能無需重復開發,直接通過配置就能完成請求修改、參數處理、安全校驗等功能。但遺憾的是,很多同學只知道?RewritePath?等常用過濾器,卻忽略了官方早已內置的 30+ 過濾器。

我發現公司的網關項目里有很多的輪子,幾乎每個人接手這個項目開發,都會自定義過濾器,導致有非常非常多的過濾器,修改其中一個,指不定就會影響其他的人功能,非常的惱火。

其實在 Spring Cloud Gateway 本身內置了很多通用的過濾器組件,有些功能無需重復開發,直接通過配置就能完成請求修改、參數處理、安全校驗等功能。但遺憾的是,很多同學只知道 RewritePath 等常用過濾器,卻忽略了官方早已內置的 30+ 過濾器。

下邊小富梳理 Spring Cloud Gateway 30+ 個過濾器,包含配置示例與實戰場景,你會發現有些代碼真的不用寫。

一、請求相關

1. AddRequestHeader

作用:給請求添加 Header,轉發請求前,給請求添加指定 Header。

配置示例:

spring:
  cloud:
    gateway:
      routes:
        -id:xiaofu-120412
          uri:http://127.0.0.1:12041/
          predicates:
            -Weight=xiaofu-group,1
            -Path=/test/version1/**
          filters:
            -RewritePath=/test/version1/(?<segment>.*),/$\{segment}
            -name:AddRequestHeader
              args:
                name:X-Request-Source# Header名稱
                value:gateway         # Header值

場景:傳遞請求來源標識(如gateway、app),方便下游服務做權限控制。

2. RemoveRequestHeader

作用:移除請求中的 Header,轉發前移除請求中指定的 Header(如敏感信息)。

配置示例:

filters:
  - RewritePath=/test/version1/(?<segment>.*),/$\{segment}
  - name: RemoveRequestHeader
    args:
      name: Authorization # 移除客戶端傳來的 Authorization 頭

場景:下游服務不需要客戶端直接傳遞的令牌,由網關統一處理認證時使用。

3. SetRequestHeader

作用:覆蓋請求中的 Header,若請求中已存在指定 Header,直接覆蓋其值;不存在則添加。

配置示例:

filters:
  - RewritePath=/test/version1/(?<segment>.*),/$\{segment}
  - name: SetRequestHeader
    args:
      name: Authorization
      value: 111111 # 強制將 Authorization 設為 111111

注意:與 AddRequestHeader 的區別是,SetRequestHeader 會覆蓋原有值,而 AddRequestHeader 會保留原有值(若存在)。

4. AddRequestParameter

作用:轉發請求時給請求添加參數,URL 或請求體添加參數(支持 GET/POST)。

配置示例:

filters:
  - RewritePath=/test/version1/(?<segment>.*),/$\{segment}
  - name: AddRequestParameter
    args:
      name: from
      value: gateway  # 所有請求會帶上 ?from=gateway 參數

場景:統計請求來源,或給下游服務傳遞額外標識(如灰度標記)。

5. RemoveRequestParameter

作用:移除請求中的參數,轉發前移除請求中的指定參數(如敏感參數 password)。

配置示例:

filters:
  - RewritePath=/test/version1/(?<segment>.*),/$\{segment}
  - name: RemoveRequestParameter
    args:
      name: password  # 移除請求中的 password 參數

6. MapRequestHeader

作用:把網關請求頭的值,映射到另一個請求頭里。比如前端調用網關,請求頭有一個 X-User-Id 用來驗證,但是要轉發的下游服務只校驗請求頭 userId,這時要自動做一個映射。

配置示例:

filters:
  - MapRequestHeader=X-User-Id, userId

7. RequestSize

作用:限制請求體大小,拒絕請求體超過指定大小的請求(防止大文件上傳壓垮服務)。

配置示例:

filters:
  - name: RequestSize
    args:
      maxSize: 10MB  # 最大請求體10MB,超過返回413

8. RequestHeaderSize

作用:限制請求頭大小,拒絕請求頭超過指定大小的請求,如下任何請求頭的大小超過1000字節,這將發送一個 431狀態碼的響應。

配置示例:

filters:
  - RequestHeaderSize=1000B

9. PreserveHostHeader

作用:保留原始 Host 頭,轉發請求時,保留客戶端的原始 Host 頭(默認會改為下游服務的 Host)。

配置示例:

filters:
  - name: PreserveHostHeader  # 無參數,直接啟用
  • 場景:下游服務依賴 Host 頭進行邏輯處理時使用。

10. SetRequestHostHeader

作用:某些情況下,host 頭可能需要被重寫。修改請求的 Host 頭,轉發請求時,強制修改 Host 頭為指定值。

配置示例:

filters:
  - name: SetRequestHostHeader
    args:
      host: target-service.com  # 強制 Host 頭為 target-service.com

11. CacheRequestBody

作用:緩存請求體,請求體(如 POST 請求的 JSON 數據),我們知道默認請求體只能讀一次,所以為了后續的操作,使用該過濾器來緩存請求體,然后再把它發送到下游,從 exchange 屬性中獲取請求體。

配置示例:

filters:
  - name: CacheRequestBody
    args:
      cacheName: requestBodyCache  # 緩存名稱

場景:多個過濾器需要讀取請求體時使用(如先校驗簽名,再解析參數)。

二、響應相關

主要是調整服務返回的響應信息,比如響應頭 Header 等。

1. AddResponseHeader

作用:給響應添加 Header,服務返回響應后,給響應添加指定 Header(如跨域標識、緩存控制)。

配置示例:

filters:
  - RewritePath=/test/version1/(?<segment>.*),/$\{segment}
  - name: AddResponseHeader
    args:
      name: X-Response-Time
      value: 120  # 可結合全局過濾器動態設置響應時間

場景:添加 Cache-Control: max-age=3600 控制靜態資源緩存。

2. RemoveResponseHeader

作用:移除響應中的 Header,移除服務返回的敏感響應頭(如 X-Application-Context 暴露服務信息)。

配置示例:

filters:
  - RewritePath=/test/version1/(?<segment>.*),/$\{segment}
  - name: RemoveResponseHeader
    args:
      name: X-Application-Context

3. SetResponseHeader

作用:覆蓋響應中的 Header,覆蓋服務返回的響應頭(如統一設置 Content-Encoding)。

配置示例:

filters:
  - RewritePath=/test/version1/(?<segment>.*),/$\{segment}
  - name: SetResponseHeader
    args:
      name: Content-Encoding
      value: gzip  # 強制響應使用 gzip 編碼

4. RewriteResponseHeader

作用:重寫響應 Header 的值,用正則表達式修改響應 Header 的值(如脫敏處理)。

配置示例:

filters:
  -RewritePath=/test/version1/(?<segment>.*),/$\{segment}
-name:RewriteResponseHeader
    args:
      name:X-User-Phone
      regexp:"(.{3}).\*(.{4})"# 保留前3位和后4位
      replacement:"\$1\*\*\*\*\$2"   # 手機號脫敏為 138\*\*\*\*5678

5. DedupeResponseHeader

作用:去重響應頭,當響應頭存在多個相同名稱時,去重并保留指定值。

配置示例:

filters:
  - RewritePath=/test/version1/(?<segment>.*),/$\{segment}
  - name: DedupeResponseHeader
    args:
      name: Access-Control-Allow-Origin
      strategy: RETAIN\_FIRST  # 保留第一個值

場景:解決跨域配置中 Access-Control-Allow-Origin 重復的問題。

6. RemoveJsonAttributesResponseBody

作用:從根層 JSON 響應結果中移除指定字段,只對 Content-Type: application/json 的響應生效。

配置示例:

filters:
  - RewritePath=/test/version1/(?<segment>.*),/$\{segment}
  - RemoveJsonAttributesResponseBody=xiaofu

場景:比如在某些敏感或無意義的字段,下游服務暫時無法改動,而響應結果又不想暴漏出來的字段。注意:2021.x版本的網關還不支持,需要高版本。

7. SetStatus:設置響應狀態碼

作用:強制修改響應的 HTTP 狀態碼(如將 404 改為 200 并返回自定義提示)。

配置示例:

filters:
  - name: SetStatus
    args:
      status: 200  # 無論服務返回什么,響應狀態碼都設為 200

8. RewriteLocationResponseHeader

作用:重寫響應頭中的 Location(用于反向代理場景)。 NEVER_STRIP、AS_IN_REQUEST(默認)和 ALWAYS_STRIP。

  • NEVER_STRIP:  即使最初的請求路徑不包含version,version也不會被剝離。
  • AS_IN_REQUEST:  只有當原始請求路徑不包含version時,才會剝離version。
  • ALWAYS_STRIP:  version 總是被剝離,即使原始請求路徑包含version 。

配置示例:

filters:
  - RewriteLocationResponseHeader=AS_IN_REQUEST, Location

三、路徑處理相關

修改請求路徑與跳轉相關的操作

1. RewritePath(最常用)

作用:重寫請求路徑,用正則表達式修改請求路徑(如去掉 /api 前綴)。

配置示例:

filters:
  - name: RewritePath
    args:
      regexp: /api/(?\<segment>.\*)  # 匹配 /api/test
      replacement: /\$\\{segment}    # 重寫為 /test(轉發到下游服務)

場景:前端請求帶 /api 前綴,網關轉發時去掉,適配下游服務接口路徑。

2. PrefixPath

作用:給路徑添加前綴,轉發前給請求路徑添加指定前綴(如下游服務接口統一帶 /v1)。

配置示例:

filters:
  - name: PrefixPath
    args:
      prefix: /v1  # 請求 /user → 轉發到 /v1/user

3. StripPrefix

作用:移除路徑前綴,移除路徑中指定數量的前綴段(如 /api/v1/user 移除 2 段前綴)。

配置示例:

filters:
  - name: StripPrefix
    args:
      parts: 2  # /api/v1/user → 轉發到 /user

注意:與 RewritePath 的區別是,StripPrefix 按段數移除,RewritePath 按正則匹配,更靈活。

4. RedirectTo

作用:重定向請求,將請求重定向到指定 URL(支持 301/302 狀態碼)。

配置示例:

filters:
  - name: RedirectTo
    args:
      status: 302  # 臨時重定向
      url: https://baidu.com  # 重定向到新域名

場景:域名遷移、舊接口廢棄時引導到新地址。

5. SetPath

作用:直接設置路徑,用模板語法直接設置請求路徑(替代原有路徑)。

配置示例:

filters:
  - name: SetPath
    args:
      template: /fixed/path  # 所有請求都轉發到 /fixed/path

四、安全相關

控制請求參數與路由轉發相關的操作,比如請求限流、重試、負載均衡等。

1. RequestRateLimiter

作用:基于令牌桶算法限流(默認用 Redis 存儲限流計數)。

配置示例:

filters:
  -RewritePath=/test/version1/(?<segment>.*),/$\{segment}
-name:RequestRateLimiter
    args:
      redis-rate-limiter.replenishRate:10# 令牌桶填充速率(每秒10個)
      redis-rate-limiter.burstCapacity:20# 令牌桶最大容量(最多存20個)
      key-resolver:"#{@myKeyResolver}"    # 需自定義 KeyResolver

key-resolver 用于定義如何生成限流的key,這通常基于請求的某些屬性(如IP地址、用戶ID等)。你可以通過實現 KeyResolver 接口來自定義key解析器。

import org.springframework.cloud.gateway.filter.ratelimit.KeyResolver;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;

@Component("myKeyResolver")
public class MyKeyResolver implements KeyResolver {
    @Override
    public Mono<String> resolve(ServerWebExchange exchange) {

        // 例如,根據請求頭中的某個字段生成key
        return Mono.just("8888888x-api-key:"+exchange.getRequest().getHeaders().getFirst("x-api-key"));
    }
}

由于默認是 redis 做底層限流,所以這里要加上 redis 配置信息

spring:
  redis:
    host: localhost
    port: 6379
    password: xxxx

場景:保護下游服務,防止流量過載(如秒殺接口限制單 IP 訪問頻率)。

2. Retry

作用:請求重試,當服務返回指定狀態碼或超時,自動重試請求。

配置示例:

filters:
-name:Retry
args:
    retries:3# 最多重試3次
    statuses:BAD_GATEWAY,SERVICE_UNAVAILABLE# 遇到 502/503 重試
    methods:GET,POST
    backoff:
      firstBackoff:10ms# 第一次重試延遲100ms
      maxBackoff:50ms# 最大延遲1s
      factor:2# 延遲倍數(100ms → 200ms → 400ms)
      basedOnPreviousValue:false

注意:重試可能導致下游服務重復處理,需確保接口冪等性。

3. Hystrix

作用:熔斷降級(已過時,推薦 CircuitBreaker),服務調用超時或失敗時,觸發熔斷并返回降級響應。

配置示例:

filters:
  - name: Hystrix
    args:
      name: fallbackCommand  # 熔斷命令名
      fallbackUri: forward:/fallback  # 降級接口(返回默認數據)

4. CircuitBreaker

作用:熔斷降級(替代 Hystrix),基于 Resilience4j 實現熔斷,支持超時、失敗率閾值配置。

配置示例:

filters:
  -name:CircuitBreaker
    args:
      name:myCircuitBreaker
      fallbackUri:forward:/inCaseOfFailureUseThis# 這里是網關內的控制器uri
      statusCodes:# 也可根據狀態來控制是否熔斷
          -500
           -"NOT_FOUND"
@RestController
@RequestMapping("/")
@Slf4j
public class InCaseOfFailureUseThisController {

    @GetMapping(value = "/inCaseOfFailureUseThis")
    public String inCaseOfFailureUseThis() {

        System.out.println("inCaseOfFailureUseThis");

        return "inCaseOfFailureUseThis";
    }
}

如果我們希望熔斷后不路由到網關,而且是轉發到其他的外部路徑,可以如下設置。

spring:
  cloud:
    gateway:
      routes:
      -id:ingredients
        uri:http://127.0.0.1:12041/
        predicates:
        -Path=//ingredients/**
        filters:
        -name:CircuitBreaker
          args:
            name:myCircuitBreaker
            fallbackUri:forward:/fallback
      -id:myCircuitBreaker-fallback
        uri:http://localhost:9994
        predicates:
        -Path=/fallback

5. SaveSession

在轉發調用下游之前強制進行 WebSession::save 操作,這在使用類似 Spring Session 的懶數據存儲時特別有用,因為你需要確保在進行轉發調用之前已經保存了Session狀態。

配置示例:

filters:
  - SaveSession

如果集成了 Spring Security 與 Spring Session ,而且希望確保安全細節已被轉發到下游進程,這一點至關重要。

寫在最后

這期東西還是很多的,其實 80% 的路由增強場景(如路徑重寫、限流、跨域)都能通過內置過濾器實現,無需手寫代碼,所有不要動不動就想著加過濾器。還有在使用過濾器的時候要注意,多個過濾器的配置順序,順序不對容易出奇奇怪怪的問題哦。

責任編輯:武曉燕 來源: 程序員小富
相關推薦

2021-01-14 08:13:39

Spring Clou應用內置過濾器

2023-01-26 01:41:27

核心全局過濾器

2017-04-12 14:43:01

Spring ClouZuul過濾器

2022-05-13 08:23:07

Zuul微服務Zuul過濾器

2022-02-21 23:58:49

Spring過濾器順序值

2021-07-05 15:22:03

Servlet過濾器客戶端

2023-07-24 08:00:56

客戶端訪問指定

2024-01-05 09:04:35

隆過濾器數據結構哈希函數

2024-11-04 08:45:48

布隆過濾器元數據指紋值

2009-09-29 13:55:23

Hibernate設置

2009-07-08 16:07:04

Servlet過濾器配

2009-07-08 15:30:56

Servlet過濾器

2009-07-14 09:09:08

Swing模型過濾器

2011-06-29 16:14:59

Qt 事件 過濾器

2023-04-14 09:01:25

2024-04-03 08:08:15

謂詞網關開發

2025-04-21 00:50:50

2009-06-18 10:13:00

Hibernate過濾

2009-09-25 15:19:44

Hibernate過濾

2009-07-08 17:33:37

Servlet過濾器
點贊
收藏

51CTO技術棧公眾號

卡一卡二卡三在线观看| 国产女主播自拍| 中文字幕乱码人妻二区三区| 国产精品久久观看| 日韩三级在线观看| 青青草精品视频在线| 精品99又大又爽又硬少妇毛片| 奇米综合一区二区三区精品视频| 免费91在线视频| 欧美无人区码suv| 亚洲伦理一区二区| 亚洲h精品动漫在线观看| 欧美一级日本a级v片| 精品久久国产视频| 日本最新不卡在线| 欧美富婆性猛交| 亚洲午夜久久久久久久国产| **爰片久久毛片| 欧美日韩一区二区在线视频| 国产一区二区视频播放| 毛片在线播放a| eeuss国产一区二区三区| 成人黄色大片在线免费观看| 国产午夜免费福利| 国产精品www.| 色视频www在线播放国产成人| 杨幂一区二区国产精品| 亚洲天堂1区| 欧美日韩国产精品| 91国在线高清视频| 日韩三级影院| 国产无一区二区| 久久国产欧美精品| 国产91久久久| 国产一区二区在线观看免费| 青青草成人在线| 三级黄色在线视频| 黄色亚洲免费| 欧美巨大黑人极品精男| 超碰人人干人人| 自拍欧美一区| 日韩av有码在线| 大桥未久恸哭の女教师| 久久69av| 欧美大片在线观看一区二区| 婷婷激情综合五月天| 草莓视频成人appios| 精品国产31久久久久久| aa视频在线播放| 丁香花电影在线观看完整版| 亚洲欧美成aⅴ人在线观看| 五月天色一区| 爱久久·www| 国产精品女人毛片| 亚洲精品一区二区三区四区五区 | 国产乱国产乱老熟300| 99久久九九| 日日狠狠久久偷偷四色综合免费| 微拍福利一区二区| 欧洲福利电影| 日韩在线免费高清视频| 懂色av粉嫩av蜜臀av一区二区三区| 精品视频免费| 日韩中文字幕国产精品| 日韩av网站在线播放| 忘忧草精品久久久久久久高清| 日韩在线视频网站| 青青草免费av| 日韩一级大片| 国产98色在线| 亚洲天堂中文字幕在线| 国产一区二区福利| 国产伦精品一区二区三区视频孕妇 | 国产亚洲人成a一在线v站| 久久中文字幕人妻| 极品美女一区二区三区| 尤物99国产成人精品视频| 精品在线观看一区| 欧美三级免费| 欧美在线国产精品| 国产一卡二卡三卡| 精品在线一区二区三区| 5g影院天天爽成人免费下载| 香蕉视频网站在线| 国产精品免费视频观看| 成人黄色片免费| 成人勉费视频| 6080yy午夜一二三区久久| 国产精品嫩草69影院| 日韩母乳在线| www欧美日韩| 国产主播在线播放| 青青草原综合久久大伊人精品优势| 91亚洲永久免费精品| 亚洲伦理在线观看| 国产三级欧美三级| 一本色道久久88亚洲精品综合 | 亚洲自拍偷拍网| 羞羞色国产精品| 最新中文字幕在线观看视频| 国产精品白丝av| 欧美人xxxxx| 精品自拍一区| 日韩欧美国产骚| 91性高潮久久久久久久| 日韩深夜影院| 欧美精品性视频| 波多野结衣一区二区三区在线| 国产一区二区精品在线观看| 日本成人三级| 欧美性video| 欧美日韩在线不卡| 在线观看av中文字幕| 99成人超碰| 国产高清在线不卡| 狠狠躁日日躁夜夜躁av| 国产精品久久久久永久免费观看| 香港三级韩国三级日本三级| 美女精品视频在线| 色综合伊人色综合网| 国产一级18片视频| 国产成人精品网址| 一区二区视频在线播放| 久久uomeier| 亚洲精品一区二区三区福利| 破处女黄色一级片| 久久国产精品99久久人人澡| 日韩精品电影网站| 中文字幕资源网在线观看免费| 日韩欧美国产综合| 欧美丰满熟妇bbbbbb| 麻豆免费看一区二区三区| 久久综合色一本| h片在线观看视频免费免费| 91精品国产福利在线观看| 中国1级黄色片| 日韩**一区毛片| 日韩国产欧美精品| 五月天av在线| 亚洲国产精品小视频| 久久视频免费看| 国产suv精品一区二区6| 影音欧美亚洲| 9999在线精品视频| 色婷婷久久一区二区| 国产裸体美女永久免费无遮挡| 91视频国产观看| 久久黄色片视频| 欧美调教在线| 777777777亚洲妇女| 三级视频在线看| 五月婷婷另类国产| 日本少妇毛茸茸| 国产欧美日韩亚洲一区二区三区| 国产精品国产三级国产专区53 | 色综合天天做天天爱| 极品白嫩丰满美女无套| 国产日韩欧美一区在线| 久久人人九九| 厕沟全景美女厕沟精品| 亚洲性无码av在线| 中文字幕精品一区二| 国产欧美一区二区三区鸳鸯浴| 日本激情视频在线| 色综合久久网| **亚洲第一综合导航网站| 性爱视频在线播放| 亚洲福利在线看| av黄色在线看| 国产区在线观看成人精品| 天天爽夜夜爽一区二区三区| 久久高清免费| 99久久伊人精品影院| av剧情在线观看| 亚洲色图日韩av| 国产精品久久久午夜夜伦鲁鲁| 亚洲精品亚洲人成人网| 中国xxxx性xxxx产国| 久久精品日韩欧美| 亚洲一区二区三区精品在线观看 | 日韩av中文字幕在线播放| 欧美黑人一区二区| 国产精品色哟哟网站| wwwxxxx在线观看| 国产精品日韩精品欧美精品| 亚洲欧洲三级| silk一区二区三区精品视频| 欧美伊久线香蕉线新在线| 高清毛片在线看| 欧美一个色资源| 亚洲AV无码成人精品区东京热| 中文字幕一区二区三区精华液| 国产伦理在线观看| 午夜一级久久| 成人黄色片免费| 国产一区二区在线| 99国产视频在线| 日本电影欧美片| 欧美国产精品va在线观看| 深夜福利视频一区| 日韩一二三四区| 亚洲av人无码激艳猛片服务器| 一区二区成人在线| 日本美女xxx| www.亚洲色图.com| 手机看片一级片| 国产精品美女| 黄色成人在线免费观看| 国产一区二区三区91| 99久re热视频这里只有精品6| 最新欧美电影| 午夜精品久久久久久99热软件| 日本最新在线视频| 日韩成人激情视频| 国产日韩精品suv| 草莓福利社区在线| 久久久久国产一区二区三区四区| 九一精品久久久| 国产女优一区| 黄色一级片国产| 99re6这里只有精品| 久久精品日产第一区二区三区乱码 | 欧美日韩色图| 久久国产精品亚洲va麻豆| 7777精品| 成人免费在线网址| 欧美va在线观看| 国产91精品久久久| 青春草免费在线视频| 北条麻妃在线一区二区| 9色在线视频网站| 国产丝袜一区二区三区| 蜜臀久久精品久久久久| 欧美一区二区视频在线观看2020| 国产偷人爽久久久久久老妇app| 欧美色另类天堂2015| 五月天婷婷网站| 亚洲夂夂婷婷色拍ww47| 欧美卡一卡二卡三| 亚洲同性gay激情无套| 美国美女黄色片| 国产欧美日韩综合精品一区二区| 熟女少妇一区二区三区| 91丝袜美腿高跟国产极品老师| 精品一区二区视频在线观看| 高清在线不卡av| 国产51自产区| 9人人澡人人爽人人精品| youjizz.com国产| 成人综合婷婷国产精品久久蜜臀| 深夜福利网站在线观看| 国产一区二区不卡| 毛片毛片毛片毛片毛| 国产一二精品视频| 天堂网成人在线| 成人在线一区二区三区| 亚洲少妇18p| 99re这里只有精品6| 久久久久久久久久久国产精品| 91美女片黄在线| 91成人破解版| 国产精品视频免费看| h色网站在线观看| 亚洲一区二区三区不卡国产欧美| 国产精品1000| 狠狠久久五月精品中文字幕| www.国产一区二区| 欧美亚洲动漫另类| 一级黄色片在线| 日韩三级视频中文字幕| 视频污在线观看| 亚洲香蕉av在线一区二区三区| av国产在线观看| 久久久国产一区二区| 欧美aaaxxxx做受视频| 欧美专区中文字幕| 国产精品久久久久77777丨| 91精品视频免费看| 99这里只有精品视频| 免费国产一区| 欧美h版在线| 91成人综合网| 玖玖玖国产精品| 超碰在线资源站| 99久久99久久精品国产片果冻| 亚洲色图 激情小说| 一区二区免费视频| 免费av中文字幕| 欧美一二三四区在线| 懂色av一区二区三区四区| 亚洲美女视频网| 欧美性videos| 91a在线视频| 国产极品嫩模在线观看91精品| 国产伦精品一区二区三毛| 99精品电影| 日韩av在线第一页| 精品一区二区精品| 男男做爰猛烈叫床爽爽小说| 中文字幕成人在线观看| 在线观看精品国产| 欧美日韩亚州综合| 欧美熟女一区二区| 日韩在线免费高清视频| 国产美女高潮在线| 91在线视频免费| 国产传媒欧美日韩成人精品大片| 国产精品啪啪啪视频| 久久精品1区| 五月天丁香社区| 国产精品成人一区二区三区夜夜夜 | 91亚洲一区二区| 国产欧美一区二区精品性| 日本少妇裸体做爰| 欧美一区二区三区在线观看视频| 国产高清视频免费最新在线| 欧美激情三级免费| 日本中文字幕视频一区| 免费在线观看一区二区| 精品69视频一区二区三区Q| av中文字幕网址| 国产午夜精品一区二区三区视频 | 国产无遮挡裸体视频在线观看| 成人国产精品色哟哟| 精品国产91久久久久久浪潮蜜月| 成人一对一视频| 福利电影一区二区| 91嫩草丨国产丨精品| 欧美视频在线观看一区二区| 日本ー区在线视频| 97超碰国产精品女人人人爽| 最新精品在线| 草草草视频在线观看| 国模少妇一区二区三区| 殴美一级黄色片| 91高清视频免费看| 免费在线一级视频| 97国产一区二区精品久久呦| 97精品久久| 奇米影视亚洲色图| 成人免费毛片嘿嘿连载视频| 免费在线观看h片| 日韩天堂在线观看| 18+激情视频在线| 91av免费看| 黄色欧美成人| 日韩无码精品一区二区| 亚洲午夜影视影院在线观看| 黄色av小说在线观看| 欧美国产中文字幕| 福利在线一区| 欧美a v在线播放| 久久亚洲一级片| www.com亚洲| 日韩视频―中文字幕| 91麻豆精品国产综合久久久 | 五月天精品视频| 色999日韩国产欧美一区二区| 激情综合闲人网| 国产精品久久久av久久久| 日韩欧美不卡| 超碰91在线播放| 亚洲自拍偷拍综合| 天堂在线观看av| 国产精品精品一区二区三区午夜版 | 一区一区视频| 国产一区二区毛片| 日韩av无码中文字幕| 亚洲精品一区中文| 丁香婷婷久久| 加勒比海盗1在线观看免费国语版| 国产精品一级二级三级| 精品亚洲永久免费| 国产视频自拍一区| 国产成人亚洲一区二区三区| 国产一级黄色录像片| 9人人澡人人爽人人精品| 免费一级a毛片| 欧美大成色www永久网站婷| 欧美sss在线视频| www.欧美日本| 亚洲精品视频观看| 婷婷亚洲一区二区三区| 2019中文字幕全在线观看| 日本一区二区高清不卡| 特黄特色免费视频| 日韩欧美精品中文字幕| 国产美女福利在线| 精品欧美一区二区在线观看视频 | 欧美日韩不卡在线| a级片免费在线观看| 亚洲mv在线看| 国产69精品久久99不卡| 成人黄色免费网| 久久全球大尺度高清视频| 成人免费在线播放| 国产精九九网站漫画| 欧美视频一区二区三区| a国产在线视频| 亚洲成人动漫在线|