日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

服务网关zuul之二:过滤器--请求过滤执行过程(源码分析)

發布時間:2023/12/20 编程问答 66 豆豆
生活随笔 收集整理的這篇文章主要介紹了 服务网关zuul之二:过滤器--请求过滤执行过程(源码分析) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Zuul的核心是一系列的過濾器,這些過濾器可以完成以下功能:

  • 身份認證與安全:識別每個資源的驗證要求,并拒絕那些與要求不符的請求。
  • 審查與監控:在邊緣位置追蹤有意義的數據和統計結果,從而帶來精確的生成視圖。
  • 動態路由:動態地將請求路由到不同的后端集群。
  • 壓力測試:逐漸增加執行集群的流量,以了解性能。
  • 負載分配:為每一種負載類型分配對應容量,并棄用超出限定值得請求。
  • 靜態響應處理:在邊緣位置直接建立部分響應,從而避免其轉發到內部集群。
  • 多區域彈性:跨越AWS Region進行請求路由,旨在實現ELB(Elastic Load Balancing)使用的多樣化,以及讓系統的邊緣更貼近系統的使用者。
  • 在實現了請求路由功能后,我們的微服務應用提供的接口就可以通過統一的API網關入口被客戶端訪問到了。但是,每個客戶端用戶請求為服務器應用提供的接口時,它們的訪問權限往往都有一定的限制,系統并不會將所有的微服務接口都對它們開放。

在完成了服務路由之后,我們對外開放服務還需要一些安全措施來保護客戶端只能訪問它應該訪問到的資源。所以我們需要利用Zuul的過濾器來實現我們對外服務的安全控制。

在服務網關中定義過濾器只需要繼承ZuulFilter抽象類實現其定義的四個抽象函數就可對請求進行攔截與過濾。

比如下面的例子,定義了一個Zuul過濾器,實現了在請求被路由之前檢查請求中是否有accessToken參數,若有就進行路由,若沒有就拒絕訪問,返回401 Unauthorized錯誤。

package com.dxz.zuul;import javax.servlet.http.HttpServletRequest;import org.apache.log4j.Logger;import com.netflix.zuul.ZuulFilter; import com.netflix.zuul.context.RequestContext;public class AccessFilter extends ZuulFilter {private static Logger log = Logger.getLogger(AccessFilter.class);@Overridepublic String filterType() {return "pre";}@Overridepublic int filterOrder() {return 0;}@Overridepublic boolean shouldFilter() {return true;}@Overridepublic Object run() {RequestContext ctx = RequestContext.getCurrentContext();HttpServletRequest request = ctx.getRequest();log.info(String.format("%s request to %s", request.getMethod(), request.getRequestURL().toString()));Object accessToken = request.getParameter("accessToken");if (accessToken == null) {log.warn("access token is empty");ctx.setSendZuulResponse(false);ctx.setResponseStatusCode(401);return null;}log.info("access token ok");return null;}}

在啟動類里為自定義過濾器創建具體的Bean才能啟動該過濾器,如下:

@Beanpublic AccessFilter accessFilter() {return new AccessFilter();}

啟動該服務網關后,訪問:

  • http://127.0.0.1:5555/api-b/add?a=1&b=5&sn=1:返回401錯誤
  • http://127.0.0.1:5555/api-b/add?a=1&b=5&sn=1&accessToken=token:正確路由到server,并返回計算內容

不可訪問情況:

可訪問情況:

?

過濾器

過濾器兩個功能:
1、其中路由功能負責將外部請求轉發到具體的微服務實例上,是實現外部訪問統一入口的基礎;
2、過濾器功能則負責對請求的處理過程進行預干預,是實現請求校驗、服務聚合等功能的基礎。

ZuulFilter抽象類

有4類可重寫的方法來自定義過濾器,如下:

  • filterType:返回一個字符串代表過濾器的類型,在zuul中定義了四種不同生命周期的過濾器類型,具體如下:自定義過濾器的實現,需要繼承ZuulFilter,需要重寫實現下面四個方法:
    • pre:可以在請求被路由之前調用
    • routing:在路由請求時候被調用
    • post:在routing和error過濾器之后被調用
    • error:處理請求時發生錯誤時被調用
  • filterOrder:通過int值來定義過濾器的執行順序
  • shouldFilter:返回一個boolean類型來判斷該過濾器是否要執行,所以通過此函數可實現過濾器的開關。在上例中,我們直接返回true,所以該過濾器總是生效。
  • run:過濾器的具體邏輯。需要注意,這里我們通過ctx.setSendZuulResponse(false)令zuul過濾該請求,不對其進行路由,然后通過ctx.setResponseStatusCode(401)設置了其返回的錯誤碼,當然我們也可以進一步優化我們的返回,比如,通過ctx.setResponseBody(body)對返回body內容進行編輯等。

?請求生命周期

對于其他一些過濾類型,這里就不一一展開了,根據之前對filterType生命周期介紹,可以參考下圖去理解,并根據自己的需要在不同的生命周期中去實現不同類型的過濾器。

Zuul大部分功能都是通過過濾器來實現的,這些過濾器類型對應于請求的典型生命周期:

  • PRE: 這種過濾器在請求被路由之前調用。我們可利用這種過濾器實現身份驗證、在集群中選擇請求的微服務、記錄調試信息等。
  • ROUTING:這種過濾器將請求路由到微服務。這種過濾器用于構建發送給微服務的請求,并使用Apache HttpClient或Netfilx Ribbon請求微服務。
  • POST:這種過濾器在路由到微服務以后執行。這種過濾器可用來為響應添加標準的HTTP Header、收集統計信息和指標、將響應從微服務發送給客戶端等。
  • ERROR:在其他階段發生錯誤時執行該過濾器。
    除了默認的過濾器類型,Zuul還允許我們創建自定義的過濾器類型。例如,我們可以定制一種STATIC類型的過濾器,直接在Zuul中生成響應,而不將請求轉發到后端的微服務。

在完成了pre類型的過濾器處理之后,請求進入第二個階段routing,也就是之前說的路由請求轉發階段,請求將會被routing類型過濾器處理,這里的具體處理內容就是將外部請求轉發到具體服務實例上去的過程,當服務實例將請求結果都返回之后,routing階段完成,請求進入第三個階段post,此時請求將會被post類型的過濾器進行處理,這些過濾器在處理的時候不僅可以獲取到請求信息,還能獲取到服務實例的返回信息,所以在post類型的過濾器中,我們可以對處理結果進行一些加工或轉換等內容。

另外,還有一個特殊的階段error,該階段只有在上述三個階段中發生異常的時候才會觸發,但是它的最后流向還是post類型的過濾器,因為它需要通過post過濾器將最終結果返回給請求客戶端(實際實現上還有一些差別,后續介紹)。

核心過濾器

在Spring Cloud Zuul中,為了讓API網關組件可以更方便的上手使用,它在HTTP請求生命周期的各個階段默認地實現了一批核心過濾器,它們會在API網關服務啟動的時候被自動地加載和啟用。我們可以在源碼中查看和了解它們,它們定義于spring-cloud-netflix-core模塊的org.springframework.cloud.netflix.zuul.filters包下。

如上圖所示,在默認啟用的過濾器中包含了三種不同生命周期的過濾器,這些過濾器都非常重要,可以幫助我們理解Zuul對外部請求處理的過程,以及幫助我們如何在此基礎上擴展過濾器去完成自身系統需要的功能。下面,我們將逐個地對這些過濾器做一些詳細的介紹:

pre過濾器

  • ServletDetectionFilter:它的執行順序為-3,是最先被執行的過濾器。該過濾器總是會被執行,主要用來檢測當前請求是通過Spring的DispatcherServlet處理運行,還是通過ZuulServlet來處理運行的。

    它的檢測結果會以布爾類型保存在當前請求上下文的isDispatcherServletRequest參數中,這樣在后續的過濾器中,我們就可以通過RequestUtils.isDispatcherServletRequest()和RequestUtils.isZuulServletRequest()方法判斷它以實現做不同的處理。

    一般情況下,發送到API網關的外部請求都會被Spring的DispatcherServlet處理,除了通過/zuul/路徑訪問的請求會繞過DispatcherServlet,被ZuulServlet處理,主要用來應對處理大文件上傳的情況。另外,對于ZuulServlet的訪問路徑/zuul/,我們可以通過zuul.servletPath參數來進行修改。

  • Servlet30WrapperFilter:它的執行順序為-2,是第二個執行的過濾器。目前的實現會對所有請求生效,主要為了將原始的HttpServletRequest包裝成Servlet30RequestWrapper對象。
  • FormBodyWrapperFilter:它的執行順序為-1,是第三個執行的過濾器。

    該過濾器僅對兩種類請求生效,第一類是Content-Type為application/x-www-form-urlencoded的請求,第二類是Content-Type為multipart/form-data并且是由Spring的DispatcherServlet處理的請求(用到了ServletDetectionFilter的處理結果)。

    而該過濾器的主要目的是將符合要求的請求體包裝成FormBodyRequestWrapper對象。

  • DebugFilter:它的執行順序為1,是第四個執行的過濾器。

    該過濾器會根據配置參數zuul.debug.request和請求中的debug參數來決定是否執行過濾器中的操作。而它的具體操作內容則是將當前的請求上下文中的debugRouting和debugRequest參數設置為true。

  由于在同一個請求的不同生命周期中,都可以訪問到這兩個值,所以我們在后續的各個過濾器中可以利用這兩值來定義一些debug信息,這樣當線上環境出現問題的時候,可以通過請求參數的方式來激活這些debug信息以幫助分析問題。

    另外,對于請求參數中的debug參數,我們也可以通過zuul.debug.parameter來進行自定義。

  •   PreDecorationFilter:它的執行順序為5,是pre階段最后被執行的過濾器。該過濾器會判斷當前請求上下文中是否存在forward.to和serviceId參數,如果都不存在,那么它就會執行具體過濾器的操作(如果有一個存在的話,說明當前請求已經被處理過了,因為這兩個信息就是根據當前請求的路由信息加載進來的)。

    而它的具體操作內容就是為當前請求做一些預處理,比如:進行路由規則的匹配、在請求上下文中設置該請求的基本信息以及將路由匹配結果等一些設置信息等,這些信息將是后續過濾器進行處理的重要依據,我們可以通過RequestContext.getCurrentContext()來訪問這些  信息。

  另外,我們還可以在該實現中找到一些對HTTP頭請求進行處理的邏輯,其中包含了一些耳熟能詳的頭域,比如:X-Forwarded-Host、X-Forwarded-Port。

  另外,對于這些頭域的記錄是通過zuul.addProxyHeaders參數進行控制的,而這個參數默認值為true,所以Zuul在請求跳轉時默認地會為請求增加X-Forwarded-*頭域,包括:X-Forwarded-Host、X-Forwarded-Port、X-Forwarded-For、X-Forwarded-Prefix、X-Forwarded-    Proto。

  我們也可以通過設置zuul.addProxyHeaders=false關閉對這些頭域的添加動作。

route過濾器

  • RibbonRoutingFilter:它的執行順序為10,是route階段第一個執行的過濾器。該過濾器只對請求上下文中存在serviceId參數的請求進行處理,即只對通過serviceId配置路由規則的請求生效。而該過濾器的執行邏輯就是面向服務路由的核心,它通過使用Ribbon和Hystrix來向服務實例發起請求,并將服務實例的請求結果返回。
  • SimpleHostRoutingFilter:它的執行順序為100,是route階段第二個執行的過濾器。該過濾器只對請求上下文中存在routeHost參數的請求進行處理,即只對通過url配置路由規則的請求生效。而該過濾器的執行邏輯就是直接向routeHost參數的物理地址發起請求,從源碼中我們可以知道該請求是直接通過httpclient包實現的,而沒有使用Hystrix命令進行包裝,所以這類請求并沒有線程隔離和斷路器的保護。

  知道配置類似zuul.routes.user-service.url=http://localhost:8080/這樣的底層都是通過httpclient直接發送請求的,也就知道為什么這樣的情況沒有做到負載均衡的原因所在。

  • SendForwardFilter:它的執行順序為500,是route階段第三個執行的過濾器。該過濾器只對請求上下文中存在forward.to參數的請求進行處理,即用來處理路由規則中的forward本地跳轉配置。

post過濾器

  • SendErrorFilter:它的執行順序為0,是post階段第一個執行的過濾器。該過濾器僅在請求上下文中包含error.status_code參數(由之前執行的過濾器設置的錯誤編碼)并且還沒有被該過濾器處理過的時候執行。而該過濾器的具體邏輯就是利用請求上下文中的錯誤信息來組織成一個forward到API網關/error錯誤端點的請求來產生錯誤響應。
  • SendResponseFilter:它的執行順序為1000,是post階段最后執行的過濾器。該過濾器會檢查請求上下文中是否包含請求響應相關的頭信息、響應數據流或是響應體,只有在包含它們其中一個的時候就會執行處理邏輯。而該過濾器的處理邏輯就是利用請求上下文的響應信息來組織需要發送回客戶端的響應內容。

下表是對上述過濾器根據順序、名稱、功能、類型做了綜合的整理,可以幫助我們在自定義過濾器或是擴展過濾器的時候用來參考并全面地考慮整個請求生命周期的處理過程。

Zuul中默認實現的Filter

類型順序過濾器功能
pre-3ServletDetectionFilter標記處理Servlet的類型
pre-2Servlet30WrapperFilter包裝HttpServletRequest請求
pre-1FormBodyWrapperFilter包裝請求體
route1DebugFilter標記調試標志
route5PreDecorationFilter處理請求上下文供后續使用
route10RibbonRoutingFilterserviceId請求轉發
route100SimpleHostRoutingFilterurl請求轉發
route500SendForwardFilterforward請求轉發
post0SendErrorFilter處理有錯誤的請求響應
post1000SendResponseFilter處理正常的請求響應

禁用指定的Filter

可以在application.yml中配置需要禁用的filter,格式:

zuul:FormBodyWrapperFilter:pre:disable: true

?

Zuul中的Filter執行順序控制

1、定義是給出執行順序

ZuulFilter抽象類實現了Comparable接口,并實現了compareTo方法(zuul-core-1.3.0.jar的ZuulFilter.java)

public int compareTo(ZuulFilter filter) {return Integer.compare(this.filterOrder(), filter.filterOrder());}

2、Filter執行是按照順序執行

zuul-core-1.3.0.jar的FilterProcessor.java

public Object runFilters(String sType) throws Throwable {if (RequestContext.getCurrentContext().debugRouting()) {Debug.addRoutingDebug("Invoking {" + sType + "} type filters");}boolean bResult = false;List<ZuulFilter> list = FilterLoader.getInstance().getFiltersByType(sType);if (list != null) {for (int i = 0; i < list.size(); i++) {ZuulFilter zuulFilter = list.get(i);Object result = processZuulFilter(zuulFilter);if (result != null && result instanceof Boolean) {bResult |= ((Boolean) result);}}}return bResult;}

zuul-core-1.3.0.jar的FilterLoader.java的getFilterByType中按類型pre、route、post取Filter后,再按照FilterOrder進行排序。

public List<ZuulFilter> getFiltersByType(String filterType) {List<ZuulFilter> list = hashFiltersByType.get(filterType);if (list != null) return list;list = new ArrayList<ZuulFilter>();Collection<ZuulFilter> filters = filterRegistry.getAllFilters();for (Iterator<ZuulFilter> iterator = filters.iterator(); iterator.hasNext(); ) {ZuulFilter filter = iterator.next();if (filter.filterType().equals(filterType)) {list.add(filter);}}Collections.sort(list); // sort by priority hashFiltersByType.putIfAbsent(filterType, list);return list;}

zuul-core-1.3.0.jar的FilterProcessor.java的processZuulFilter方法執行具體Filter

public Object processZuulFilter(ZuulFilter filter) throws ZuulException {RequestContext ctx = RequestContext.getCurrentContext();boolean bDebug = ctx.debugRouting();final String metricPrefix = "zuul.filter-";long execTime = 0;String filterName = "";try {long ltime = System.currentTimeMillis();filterName = filter.getClass().getSimpleName();RequestContext copy = null;Object o = null;Throwable t = null;if (bDebug) {Debug.addRoutingDebug("Filter " + filter.filterType() + " " + filter.filterOrder() + " " + filterName);copy = ctx.copy();}ZuulFilterResult result = filter.runFilter();ExecutionStatus s = result.getStatus();execTime = System.currentTimeMillis() - ltime;switch (s) {case FAILED:t = result.getException();ctx.addFilterExecutionSummary(filterName, ExecutionStatus.FAILED.name(), execTime);break;case SUCCESS:o = result.getResult();ctx.addFilterExecutionSummary(filterName, ExecutionStatus.SUCCESS.name(), execTime);if (bDebug) {Debug.addRoutingDebug("Filter {" + filterName + " TYPE:" + filter.filterType() + " ORDER:" + filter.filterOrder() + "} Execution time = " + execTime + "ms");Debug.compareContextState(filterName, copy);}break;default:break;}if (t != null) throw t;usageNotifier.notify(filter, s);return o;} catch (Throwable e) {if (bDebug) {Debug.addRoutingDebug("Running Filter failed " + filterName + " type:" + filter.filterType() + " order:" + filter.filterOrder() + " " + e.getMessage());}usageNotifier.notify(filter, ExecutionStatus.FAILED);if (e instanceof ZuulException) {throw (ZuulException) e;} else {ZuulException ex = new ZuulException(e, "Filter threw Exception", 500, filter.filterType() + ":" + filterName);ctx.addFilterExecutionSummary(filterName, ExecutionStatus.FAILED.name(), execTime);throw ex;}}}

?

?再調用ZuulFilter抽象類的runFilter()方法,該方法執行子類(自定義Filter)的run方法,完成我們的業務邏輯。

public ZuulFilterResult runFilter() {ZuulFilterResult zr = new ZuulFilterResult();if (!isFilterDisabled()) {if (shouldFilter()) {Tracer t = TracerFactory.instance().startMicroTracer("ZUUL::" + this.getClass().getSimpleName());try {Object res = run();zr = new ZuulFilterResult(res, ExecutionStatus.SUCCESS);} catch (Throwable e) {t.setName("ZUUL::" + this.getClass().getSimpleName() + " failed");zr = new ZuulFilterResult(ExecutionStatus.FAILED);zr.setException(e);} finally {t.stopAndLog();}} else {zr = new ZuulFilterResult(ExecutionStatus.SKIPPED);}}return zr;}

?

轉載于:https://www.cnblogs.com/duanxz/p/7542150.html

總結

以上是生活随笔為你收集整理的服务网关zuul之二:过滤器--请求过滤执行过程(源码分析)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

激情久久网 | 国产精品久久久久久a | 亚洲 欧美 精品 | 香蕉影院在线播放 | 精品久久久久免费极品大片 | 香蕉久草在线 | 免费av片在线 | 婷婷丁香色 | 国产一区视频在线播放 | 欧美日韩精品在线一区二区 | 日韩在线免费播放 | 91一区一区三区 | 精品久久免费看 | 国产精品久久久久久久免费观看 | 福利网在线 | 99免费视频 | 亚洲国产精品99久久久久久久久 | 国产精品一区二区美女视频免费看 | 国产精品v欧美精品v日韩 | 激情综合六月 | 精品国产久 | 亚洲欧洲成人 | 日韩精品不卡 | 亚洲国内精品在线 | 色视频 在线| 日韩一区正在播放 | 最新av网址大全 | 久久看看| 国产午夜精品av一区二区 | 欧美日韩国产在线一区 | 国产亚洲91| 日韩欧美一区二区三区黑寡妇 | 国产精品影音先锋 | 天天躁日日 | 9幺看片 | 国产乱对白刺激视频在线观看女王 | 午夜三级理论 | 日韩高清久久 | 日日夜夜免费精品视频 | 麻豆你懂的| 亚洲在线黄色 | 在线观看免费视频你懂的 | 又湿又紧又大又爽a视频国产 | 日韩激情中文字幕 | 久久激情视频 | 国产专区在线视频 | 91在线91拍拍在线91 | 色九九影院 | 91香蕉视频黄色 | av网址最新 | 久久九九久久 | 久草在线久草在线2 | 天天干天天操天天做 | 福利一区二区 | 手机在线永久免费观看av片 | 91久久精品一区二区二区 | 亚洲伊人第一页 | 国产亚洲婷婷免费 | 国产 日韩 在线 亚洲 字幕 中文 | 婷婷色在线视频 | 成人黄色电影在线 | 日韩精品一区二区免费视频 | 成人精品一区二区三区中文字幕 | bbw av| 一区二区精品视频 | 91一区二区三区在线观看 | 这里只有精品视频在线 | 中文字幕在线免费97 | av高清一区 | 99精品欧美一区二区蜜桃免费 | 久久久网 | 国产 欧美 在线 | 成人国产网址 | 中文字幕乱码亚洲精品一区 | 日韩成人在线一区二区 | 久久免费精彩视频 | 欧美人人| 久久久五月婷婷 | 91精品国产乱码久久 | 狠狠的操狠狠的干 | 国产精品久久久久久久久久99 | 久久伦理网| 96在线| 成年人免费在线观看 | 久久久麻豆精品一区二区 | 91精选在线 | 久久国产高清 | 国产精品12345 | 国产精品电影一区二区 | 91精品视频观看 | 欧美在线观看视频一区二区 | 久久一久久 | 国产破处在线播放 | 最近最新中文字幕 | 99视频精品免费视频 | 夜夜夜精品| 国产精品永久在线观看 | 91亚洲国产成人 | 久久综合狠狠狠色97 | 日韩在线视频一区 | 亚洲精品成人网 | 日本中文字幕一二区观 | 国产精品一区二区三区在线免费观看 | 国产亲近乱来精品 | 在线 国产 亚洲 欧美 | 国产精品v欧美精品 | av免费福利 | 国内精品亚洲 | 天天射天天射天天 | 伊人网av| 国产精品福利视频 | 国产在线精品二区 | www色av| 国产不卡在线视频 | 久久免费观看少妇a级毛片 久久久久成人免费 | 成人午夜网| 国产99久久久国产精品成人免费 | 免费欧美高清视频 | 日韩欧美视频 | 777视频在线观看 | 99精品黄色片免费大全 | 中文字幕网站视频在线 | 国产精品美乳一区二区免费 | 亚洲 中文 欧美 日韩vr 在线 | www.狠狠操.com| 亚洲午夜久久久久久久久 | 午夜精品久久久久久 | 91精品999| 天天干夜夜夜 | 久久精品国产亚洲a | 亚洲国产精品小视频 | 亚洲 欧洲av | 久久久久国产精品免费网站 | 日韩欧美精品一区 | 国产成人精品一区二区三区福利 | 精品麻豆 | 久久区二区 | 日本中文字幕在线播放 | 成人免费观看大片 | 免费a视频在线 | 精品一二三区视频 | 婷婷九月丁香 | 九九99视频 | 操操操干干干 | 九七视频在线观看 | 在线观看视频一区二区三区 | 香蕉97视频观看在线观看 | 国内视频在线 | 久久久高清免费视频 | 国产亚洲精品久久久久久 | 青青河边草免费观看 | 亚洲国产精品影院 | 少妇视频一区 | 欧洲精品久久久久毛片完整版 | 国产一区二区三区四区在线 | 国产在线色视频 | 美女久久99 | 久久久免费精品 | 国产精品一区二区果冻传媒 | 亚洲国产欧美一区二区三区丁香婷 | 91精品啪 | 人人超碰在线 | 天天拍天天干 | 日韩欧美第二页 | 美女国产精品 | 五月婷婷操 | 国产超碰在线观看 | 国产国语在线 | 日韩在线高清免费视频 | 夜夜婷婷| 黄色小说在线免费观看 | 亚洲精品99久久久久中文字幕 | 日本丰满少妇免费一区 | 有没有在线观看av | 精品国产免费观看 | 亚洲一级性 | 久久久久久久久久福利 | 黄色三级免费看 | 久久综合五月天婷婷伊人 | 国产精品一区二区三区免费看 | 超碰公开在线 | 中文字幕a∨在线乱码免费看 | 亚洲精品福利在线观看 | 在线观看视频一区二区三区 | 婷婷亚洲五月 | 国产精品男女视频 | 精品国产一区二区在线 | 激情五月***国产精品 | 欧美精品午夜 | 国产精品专区在线 | 成人网色 | 日韩欧美精品在线观看 | 婷婷六月丁香激情 | 国产精品九九九九九九 | 久草视频在线观 | 久久爽久久爽久久av东京爽 | 亚洲精品乱码久久久一二三 | 亚洲精品一区二区18漫画 | 99视屏| 国产成人一区二区啪在线观看 | 精品xxx| 国产精品久久久免费看 | 99久久网站 | 国产免码va在线观看免费 | 一区二区国产精品 | 精品视频99 | 97色资源| 日韩成人精品一区二区三区 | 亚洲精品久久视频 | 在线免费黄网站 | 99re视频在线观看 | 国产美女视频免费观看的网站 | 超碰在线天天 | 99中文视频在线 | 欧美永久视频 | 亚洲精品国产品国语在线 | 在线看片成人 | 国产视频在线看 | 亚洲欧美日韩精品久久久 | 亚州精品成人 | 国产精品系列在线 | 182午夜在线观看 | 午夜精品久久久久久久99 | 亚洲伊人第一页 | 成人一区不卡 | 免费观看一区二区 | 国产a级片免费观看 | 97在线公开视频 | 亚洲精品午夜视频 | 精品在线观看一区二区 | 久久电影国产免费久久电影 | 亚洲精品18日本一区app | 人人爽人人插 | 天天综合导航 | 日韩精品一区在线播放 | 久久精品99国产精品酒店日本 | 久草久热 | 99视频这里只有 | 日本在线观看中文字幕 | 国产黄色一级大片 | 狠狠亚洲 | 久草在线视频网 | 久久人人爽人人爽人人片av软件 | 亚洲理论在线观看电影 | 99久久国产免费,99久久国产免费大片 | 三级av网站| 日韩首页 | 国产在线精品二区 | 最新日韩在线观看 | 国产日韩亚洲 | 久久综合狠狠综合久久综合88 | 999在线观看视频 | 色婷婷狠狠五月综合天色拍 | 欧美极度另类性三渗透 | 91av久久| 欧美乱淫视频 | 丰满少妇一级片 | 毛片在线播放网址 | 在线观看完整版免费 | 99久高清在线观看视频99精品热在线观看视频 | 一级做a视频 | 国产精选视频 | 福利视频网址 | 久久成人午夜视频 | 三级在线视频播放 | 国产精品系列在线观看 | 国产精品久久久久久久99 | 97人人模人人爽人人少妇 | 日韩中文字幕网站 | 91片黄在线观看动漫 | 欧美日韩免费观看一区二区三区 | 亚洲色图美腿丝袜 | 日韩在线观看视频网站 | 国内成人av | 久草在线免费资源 | 亚洲精品在线观看免费 | 亚洲一级二级三级 | 少妇搡bbb| av线上看 | 欧美日韩中文在线 | 国产亚洲va综合人人澡精品 | 国内精品小视频 | 九九免费精品视频在线观看 | 夜夜爽88888免费视频4848 | 黄色在线视频网址 | 免费看的黄色小视频 | 99九九热只有国产精品 | 久久国产免费看 | 国产精品一区二区三区四区在线观看 | 91成人在线视频观看 | 伊人激情网 | 中文字幕视频在线播放 | 特级aaa毛片 | 最新成人在线 | 色av男人的天堂免费在线 | 国内精品二区 | 福利视频网站 | 日韩影视在线观看 | 99爱视频在线观看 | 精品国产一区二区三区蜜臀 | 热久久99这里有精品 | 99免费在线观看 | 久久精品国产免费观看 | 成片免费 | 色婷婷精品 | 久久精品成人 | 九九九电影免费看 | 欧美日韩视频在线观看一区二区 | 麻豆视频91| 久久神马影院 | 亚洲精品a区 | 丝袜+亚洲+另类+欧美+变态 | 国产精品自在欧美一区 | 色播亚洲婷婷 | 午夜一级免费电影 | 日韩在线观看高清 | 亚洲情影院 | 免费观看的黄色片 | 又爽又黄又无遮挡网站动态图 | 婷婷六月天丁香 | 国产精品第52页 | 久久久午夜影院 | 九九视频精品免费 | 天天干天天拍天天操 | 国产无遮挡又黄又爽在线观看 | 五月婷婷欧美视频 | 人人超在线公开视频 | 日韩三区在线观看 | 精品久久久久久久久久久久 | 人人爽人人爱 | 国产精品丝袜久久久久久久不卡 | 免费看久久久 | 992tv又爽又黄的免费视频 | 韩日精品在线观看 | 四月婷婷在线观看 | 成片免费观看视频大全 | 精品一二三区 | 美女网站视频一区 | 91亚洲精 | free. 性欧美.com | 精品国产视频在线观看 | 高清一区二区三区av | 婷婷在线精品视频 | 丁香在线视频 | 亚洲作爱| 国产明星视频三级a三级点| 国产高清免费在线播放 | 91人人爽久久涩噜噜噜 | 在线观看国产福利片 | 国产九九九精品视频 | 日韩网站在线观看 | 伊人丁香 | 日色在线视频 | 久久99亚洲精品 | 日韩特黄一级欧美毛片特黄 | 天天色官网| 97超视频免费观看 | 国产精品永久久久久久久www | 碰超人人| 久久精品久久综合 | 久久国产系列 | 天天操操| 亚洲午夜精品电影 | 在线观看黄色的网站 | 欧美色噜噜噜 | 国产精品一区在线播放 | 日韩网站一区二区 | 岛国精品一区二区 | 欧美日韩国产欧美 | 黄色小说视频网站 | 久草免费在线观看视频 | 久久草草影视免费网 | 中文字幕中文字幕在线一区 | 日韩精品一区二区在线观看 | www久久精品 | 国产精品一区二区免费视频 | 日日夜夜网 | 欧美美女视频在线观看 | 99色视频 | 天天操伊人 | 中文视频在线看 | 狠狠色香婷婷久久亚洲精品 | 欧美日韩精品二区第二页 | 激情欧美在线观看 | 日韩久久精品一区二区三区下载 | 免费a视频在线 | 色综合咪咪久久网 | 久久综合成人网 | 日韩高清免费无专码区 | 一级免费黄色 | 日本久久久久久 | 精品少妇一区二区三区在线 | 国产福利电影网址 | 国产一级黄色av | 久久久久久久久久久高潮一区二区 | 狠狠狠狠狠狠干 | 国产精品视频大全 | 日韩在线免费视频 | 亚洲视频 视频在线 | 精品久久精品 | 国内精品在线观看视频 | 午夜精品视频一区 | aaawww| 成人免费视频视频在线观看 免费 | avwww在线| 日日夜夜草 | 欧美色插| 又黄又爽又湿又无遮挡的在线视频 | 97福利在线 | 国产一区二区三区在线 | 国产在线国偷精品产拍免费yy | 免费日韩一区二区三区 | 日韩影视在线观看 | 国产韩国日本高清视频 | 精品国产乱码久久久久久1区二区 | www.午夜| 91人网站 | 国产成人精品一区二 | 一级淫片a| 91喷水| 91av手机在线观看 | 美女网站色 | 亚洲aaa毛片 | 亚洲精品视频在线观看免费视频 | 国产小视频你懂的 | 夜色成人网 | 婷婷久久久 | 久久久久99精品国产片 | 国产成人1区 | 在线播放精品一区二区三区 | 欧美视屏一区二区 | 国产精品久久久久久久电影 | 在线观看的黄色 | 激情五月婷婷综合网 | 天天色天天干天天色 | 亚洲欧美视频 | 精品国产一区二区三区久久久久久 | 91高清在线 | 91丨九色丨高潮 | 国产精选在线 | 国产 在线 高清 精品 | 中文在线a在线 | 天天爽天天搞 | 91精品国产入口 | 亚洲精品久久久久中文字幕二区 | 永久黄网站色视频免费观看w | 日韩在线国产 | 五月天久久婷婷 | 激情视频一区二区 | 国产精品麻豆99久久久久久 | 五月婷婷丁香综合 | 韩国av三级 | 久久久久久久久久亚洲精品 | 婷婷精品国产欧美精品亚洲人人爽 | 久久久国产精品人人片99精片欧美一 | 中文字幕av在线免费 | 久久久久一区二区三区四区 | 国产精品免费久久 | 国产精品av一区二区 | 国产成人精品一区二区在线观看 | 99精彩视频 | 日韩电影在线一区 | 亚洲美女久久 | 久久精品2 | 在线观看第一页 | 豆豆色资源网xfplay | 狠狠的日 | 亚洲乱亚洲乱妇 | 久久高清免费视频 | 一级黄毛片 | 日韩在线网| 天天看天天干 | 狠狠干,狠狠操 | 免费十分钟 | 中文字幕亚洲精品日韩 | 国产高清免费在线播放 | 国产大陆亚洲精品国产 | 亚洲精品自拍视频在线观看 | 色国产在线 | 中文字幕一区二区三区四区 | 色网站在线观看 | 香蕉视频国产在线观看 | 日日麻批40分钟视频免费观看 | 黄色com | 成年人三级网站 | 亚洲欧美在线综合 | 一区二区欧美日韩 | 日本性久久 | 中文字幕在线播放视频 | 97精品超碰一区二区三区 | 免费看黄色大全 | 亚洲丁香日韩 | 免费高清在线一区 | 亚洲免费小视频 | 韩国在线一区 | 午夜免费电影院 | 久久高清av | 国产情侣一区 | 综合网久久 | 亚洲视频电影在线 | 国产在线91精品 | 国产91在线 | 美洲 | 综合国产在线 | 日韩欧美电影 | 999成人国产 | 午夜国产福利在线观看 | 国产精品久久久久久久久免费看 | 久久国产精品视频免费看 | 99精品欧美一区二区三区 | 亚洲欧洲成人精品av97 | 日日摸日日爽 | 狠狠干我 | 久久久久久福利 | 久久激情片| 麻豆系列在线观看 | 国产精品黄网站在线观看 | 亚洲精品久久视频 | av7777777| 欧美日本啪啪无遮挡网站 | 久久综合欧美精品亚洲一区 | 亚洲综合色视频在线观看 | japanesexxxxfreehd乱熟 | 国内精品视频免费 | 美女久久久久久久 | 欧美精品免费视频 | 国产精品va在线观看入 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 欧美黄污视频 | 久久久午夜精品理论片中文字幕 | 国产视频日本 | 久久视频一区二区 | 国产成人免费在线 | 最近中文字幕在线 | 中文字幕观看av | 欧美日韩观看 | 欧美日韩视频在线 | 特级毛片在线免费观看 | 久久激情电影 | 成人国产一区二区 | 欧美性色19p| 日韩电影一区二区在线观看 | 国产精品一区二区三区四区在线观看 | 日韩大片在线免费观看 | 日韩欧美电影在线观看 | 国产精品视频地址 | 国产一区二区三区午夜 | 69精品| 国产免费观看视频 | 99精品视频在线看 | www.五月婷| 亚洲女欲精品久久久久久久18 | 日韩中文字幕在线 | 天天综合精品 | 成人免费观看视频大全 | 日韩a级免费视频 | 九九视频免费在线观看 | 丁香五月缴情综合网 | 日日爽天天 | 色综合久久久久久久久五月 | 天天操天天射天天舔 | 国产一区在线免费观看 | 久草免费资源 | 久久免费视频2 | 操操操操网 | 日韩免费视频在线观看 | 国产精品av免费观看 | 最近字幕在线观看第一季 | 麻豆av电影 | 91高清视频在线 | 黄色av网站在线免费观看 | av免费播放 | 日日操夜夜操狠狠操 | 99在线热播精品免费99热 | 国产精品 久久 | 国产高清小视频 | 成人免费xxx在线观看 | 97视频免费观看2区 亚洲视屏 | 91亚色视频在线观看 | 日韩欧美极品 | 91精品免费看 | 成人日批视频 | av亚洲产国偷v产偷v自拍小说 | av再线观看 | 91在线视频在线观看 | 九色91在线视频 | 黄网站www| 久久综合色一综合色88 | 91精品人成在线观看 | 国产剧在线观看片 | 激情一区二区三区欧美 | 久久久国产精品网站 | 91在线国产观看 | av片在线看 | 久久精品aaa | 综合伊人久久 | 天天人人| 成人网色 | 天天干,天天操 | 99久久99久久精品国产片果冰 | av免费在线观看1 | 91免费观看视频在线 | 亚洲精品乱码久久久久久 | 日韩av专区 | 免费视频一区二区 | 精品一区二区在线免费观看 | 国产激情电影综合在线看 | 亚州人成在线播放 | 99久久精品国 | 99精品国产福利在线观看免费 | 女人18毛片a级毛片一区二区 | 超碰在线免费福利 | 青青河边草观看完整版高清 | 日日干天天操 | 精品播放| 国产精品精品国产 | 亚洲日本一区二区在线 | 99久久精品免费看国产一区二区三区 | 久草视频在线资源 | 少妇高潮冒白浆 | 伊人色综合久久天天 | 午夜私人影院久久久久 | 国产高清精品在线 | 国产精品久久久久久欧美 | 成人久久久久久久久 | 欧美亚洲一区二区在线 | 91精品在线播放 | 中文资源在线播放 | 国产午夜小视频 | 99精品视频在线 | 国产午夜激情视频 | 中文字幕观看在线 | 久久y| 看av免费网站 | 国产精品18久久久久久首页狼 | 黄色免费av | 亚洲作爱 | 欧洲一区二区三区精品 | 久久久官网| 久久天天躁狠狠躁亚洲综合公司 | 精品国产亚洲日本 | 久草在线视频精品 | 99精品视频网站 | 国产一区二区三精品久久久无广告 | 在线观看91av | 日日夜夜精品网站 | 91精品国自产在线偷拍蜜桃 | 亚洲最新视频在线 | 久久精品观看 | 天天操福利视频 | 丁香久久综合 | 91视频91蝌蚪| 麻豆视频免费播放 | 日日躁天天躁 | 99这里只有 | 婷婷伊人综合 | 国产福利不卡视频 | 国产精品一区二区三区免费视频 | 中文字幕在线成人 | 国产一区二区视频在线播放 | av在线收看 | 色片网站在线观看 | 久久黄色免费 | 91成人看片 | wwwav视频| 欧美视频一区二 | 免费观看高清 | 国产伦精品一区二区三区免费 | 天天综合91 | 亚洲欧美日韩一级 | 久久久久久久福利 | 亚洲午夜久久久久久久久久久 | 久久久久国产精品免费免费搜索 | 91视频高清 | 久久99久久99精品免费看小说 | 91av原创 | 深夜福利视频一区二区 | 四虎永久免费在线观看 | 精品国内自产拍在线观看视频 | 中文字幕欧美激情 | 久久久久在线视频 | 婷婷激情五月综合 | 91探花国产综合在线精品 | 色婷婷狠狠五月综合天色拍 | 最近更新好看的中文字幕 | 97视频人人免费看 | 麻豆视频成人 | 91色九色| 国产精品嫩草55av | 伊人婷婷激情 | 免费观看黄 | 狠狠色噜噜狠狠狠狠2021天天 | 亚洲第一久久久 | 国产伦精品一区二区三区… | 亚洲五月婷婷 | 日韩av电影中文字幕在线观看 | 在线99| 中文字幕在线观看免费高清完整版 | 日韩高清www| 国产69久久精品成人看 | 人人插人人做 | 在线视频在线观看 | 91视频麻豆 | 黄色三几片 | 日韩偷拍精品 | 国产色秀视频 | 91精彩视频在线观看 | 国产日本亚洲 | 日操干 | 丁香花在线观看视频在线 | 成人精品999| 99色婷婷 | 国产视频在线观看一区 | 欧洲av在线 | 国产五月色婷婷六月丁香视频 | 色婷婷激情电影 | 日本中文字幕在线免费观看 | 亚洲精品免费在线播放 | 久久免费视屏 | 色资源在线 | www.69xx | 中文 一区二区 | 久久99亚洲精品 | 国产色a在线观看 | 天天色欧美 | 亚洲天天 | 色资源二区在线视频 | 毛片网在线观看 | 国产精品一区二区久久国产 | 在线中文字幕一区二区 | 亚洲精品av中文字幕在线在线 | 欧美精品首页 | 免费观看丰满少妇做爰 | 91九色免费视频 | 一区二区电影网 | 三级av网站| 成人久久18免费网站 | 欧美影片 | 国产精品一区二区三区在线播放 | 久久手机在线视频 | 欧美日韩国产色综合一二三四 | 黄色免费大全 | 亚洲 欧美 另类人妖 | 天天激情站 | 91免费在线视频 | 黄色福利网站 | 亚洲精品在线一区二区三区 | 久草免费在线 | 91精品一区二区在线观看 | 人人干在线观看 | 婷婷六月综合网 | 夜夜骑日日操 | 国产麻豆剧果冻传媒视频播放量 | 午夜 在线| 91看片在线免费观看 | 五月天亚洲精品 | 最新动作电影 | 美女视频黄频大全免费 | 亚洲精品在线观 | 成人午夜电影久久影院 | 欧美精品在线一区 | 国产精品精品久久久 | 久久久久欠精品国产毛片国产毛生 | 亚州精品天堂中文字幕 | 国产91综合一区在线观看 | av电影一区二区 | 亚洲欧洲精品在线 | 国产午夜不卡 | 黄网站免费大全入口 | 夜色成人网 | 久久久久久久久影院 | 国产精品美女毛片真酒店 | 97人人模人人爽人人喊中文字 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 毛片在线播放网址 | 99久久99久久精品免费 | 日韩免费专区 | 国产露脸91国语对白 | 国产小视频在线免费观看视频 | 日本电影黄色 | 中文字幕国语官网在线视频 | 在线综合 亚洲 欧美在线视频 | 久久久久久久国产精品 | 9在线观看免费高清完整版在线观看明 | 久久久久久毛片精品免费不卡 | 日日干激情五月 | 亚洲精品动漫在线 | 91精品国产92久久久久 | 亚洲精品18日本一区app | 好看的国产精品视频 | 日韩v在线91成人自拍 | 久久天 | 黄色在线看网站 | 亚洲免费婷婷 | 九九视频免费在线观看 | 欧美aa在线 | 人人精久 | 在线观看黄色av | 激情综合一区 | 97精品国自产拍在线观看 | 九色视频网 | 午夜精品麻豆 | 国产美女精彩久久 | 久久五月情影视 | 国产99久久精品一区二区永久免费 | 免费高清看电视网站 | 91中文字幕| 91免费高清视频 | 天天干,天天射,天天操,天天摸 | av网站免费在线 | 亚洲一区二区三区在线看 | 天天操导航 | 一区二区免费不卡在线 | 国产免费视频在线 | 天天爱天天舔 | 97在线观看免费视频 | 国产精品96久久久久久吹潮 | 亚洲成人精品国产 | 美女黄频视频大全 | 麻豆高清免费国产一区 | 日韩字幕 | 中文不卡视频在线 | 人人爱在线视频 | 国产成人一级 | 国产第一页在线播放 | 日本久久久影视 | 懂色av懂色av粉嫩av分享吧 | 日韩 在线a | 成人免费视频视频在线观看 免费 | 免费午夜视频在线观看 | 久久人人97超碰精品888 | 久久电影网站中文字幕 | 天天天天色射综合 | 免费在线色 | 日韩a级黄色片 | 黄色免费在线视频 | 亚洲涩涩涩 | 国产精品国产三级国产aⅴ无密码 | 精品成人国产 | 国产亚洲人成网站在线观看 | 干狠狠 | 在线免费观看的av | 探花国产在线 | 色婷婷成人网 | 国产精品免费人成网站 | 久久国产精品影视 | 欧美日韩高清一区二区三区 | 波多野结衣电影一区 | 精品亚洲欧美一区 | 欧美超碰在线 | 91视频免费看网站 | 日韩中文久久 | 日本h视频在线观看 | 亚洲成人国产 | 色黄久久久久久 | 日韩最新理论电影 | 精品国产一区二区三区日日嗨 | 一区二区三区在线免费观看 | 国产香蕉视频在线播放 | 日本黄色免费大片 | 99精品欧美一区二区三区 | 人人要人人澡人人爽人人dvd | 国产二区免费视频 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 中文字幕亚洲欧美日韩 | 九九久久久久99精品 | 最近中文字幕免费av | 欧美激情视频久久 | 天天天天天天干 | 国产美女精品视频免费观看 | 欧美色图另类 | 日日草夜夜操 | 成年人免费观看国产 | 伊在线视频 | 久久精品国产99国产 | 精品成人网 | 免费电影一区二区三区 | 亚洲天堂免费视频 | 91自拍视频在线 | 丁香婷婷在线观看 | 亚洲国产中文字幕在线观看 | 久黄色 | 一区二区中文字幕在线观看 | 青青草国产成人99久久 | 免费国产一区二区视频 | 天天射天天射 | 国产精品色视频 | 成人a免费视频 | av中文字幕网址 | 国产精品99蜜臀久久不卡二区 | 亚洲欧洲国产精品 | 日韩电影一区二区在线观看 | 久久精品a| 亚洲黄色一级大片 | 欧美日韩国产精品一区二区三区 | 国产网红在线观看 | 狠狠色丁香久久婷婷综 | 啪啪小视频网站 | 婷婷色在线 | 亚洲在线视频观看 | 国产精品a久久久久 | 亚洲国产免费看 | 在线亚洲观看 | 精品一区二区在线免费观看 | 成年人在线观看网站 | 亚洲精品免费视频 | 国精产品999国精产品视频 | 日韩美视频 | 国产在线 一区二区三区 | 狠狠干在线 | 亚洲三级网| 色福利网站 | 久久久久久美女 | 四虎成人精品永久免费av | 久久综合中文字幕 | 欧洲亚洲国产视频 | 国产中文字幕一区二区三区 | 国产精品自产拍在线观看蜜 | 久久久99精品免费观看乱色 | 日本超碰在线 | 美女天天操 | 国产色秀视频 | 粉嫩av一区二区三区入口 | 亚洲精品一区二区三区高潮 | 天天操人人干 | 精品中文字幕在线播放 | free. 性欧美.com | 日韩欧美黄色网址 | 91精品久久久久久综合五月天 | 去干成人网 | 日韩电影在线观看一区 | 午夜日b视频 | 999久久久免费精品国产 | 欧美日韩aaaa | 国产亚洲精品久久久久5区 成人h电影在线观看 | 天天操伊人 | 黄污网站在线 | 97超碰在线资源 | 国产精品永久久久久久久www | 四虎影视国产精品免费久久 | 婷婷丁香花五月天 | 正在播放国产精品 | 操操操日日| 在线观看黄色小视频 | 婷婷久久网站 | 日本大片免费观看在线 | 国产精品丝袜久久久久久久不卡 | 亚洲午夜精品久久久久久久久久久久 | 有码中文字幕在线观看 | 国产精品精品久久久 | 亚洲国产影院 | 国产一区二区日本 | 99久久精品一区二区成人 | 欧美久久久久 | 亚洲高清视频在线观看免费 | 久久99视频精品 | 精品久久电影 | av片免费播放 | 成人动漫一区二区 | 精品亚洲视频在线观看 | 精品久久久免费 | 最新av在线网站 | 日韩av在线小说 | 久久精品9 | 欧美国产亚洲精品久久久8v | 97超碰中文字幕 | 欧美日韩成人一区 | 一区二区男女 | 婷婷精品国产一区二区三区日韩 | 久久免费视频网站 | 婷婷日日| 久久亚洲综合国产精品99麻豆的功能介绍 | 天天综合狠狠精品 | 99视频网站 | 五月婷婷六月丁香 | 97在线精品国自产拍中文 | 欧美色道 | 久久久久国产精品一区 | 久久ww| 久久在线观看视频 | 精品999久久久 | 久久九九精品 | 日韩极品在线 | 国产99久久精品 | 性色视频在线 | 麻花豆传媒一二三产区 | 婷婷色在线视频 | 在线电影 一区 | 99久久99久久免费精品蜜臀 | 五月天六月丁香 | 在线中文字幕播放 | 99久久久久久久久久 | 97福利社| 亚洲手机天堂 | 免费在线黄 | 日韩免费高清在线 | 99在线精品视频在线观看 | 成人一区在线观看 | 黄色成人在线网站 |