久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

Spring Cloud Gateway(讀取、修改 Request Body)的操作

瀏覽:111日期:2023-07-30 10:27:01

Spring Cloud Gateway(以下簡稱 SCG)做為網(wǎng)關(guān)服務(wù),是其他各服務(wù)對(duì)外中轉(zhuǎn)站,通過 SCG 進(jìn)行請(qǐng)求轉(zhuǎn)發(fā)。

在請(qǐng)求到達(dá)真正的微服務(wù)之前,我們可以在這里做一些預(yù)處理,比如:來源合法性檢測(cè),權(quán)限校驗(yàn),反爬蟲之類…

因?yàn)闃I(yè)務(wù)需要,我們的服務(wù)的請(qǐng)求參數(shù)都是經(jīng)過加密的。

之前是在各個(gè)微服務(wù)的攔截器里對(duì)來解密驗(yàn)證的,現(xiàn)在既然有了網(wǎng)關(guān),自然而然想把這一步驟放到網(wǎng)關(guān)層來統(tǒng)一解決。

Spring Cloud Gateway(讀取、修改 Request Body)的操作

如果是使用普通的 Web 編程中(比如用 Zuul),這本就是一個(gè) pre filter 的事兒,把之前 Interceptor 中代碼搬過來稍微改改就 OK 了。

不過因?yàn)槭褂玫?SCG,它基于 Spring 5 的 WebFlux,即 Reactor 編程,要讀取 Request Body 中的請(qǐng)求參數(shù)就沒那么容易了。

本篇內(nèi)容涉及 WebFlux 的響應(yīng)式編程及 SCG 自定義全局過濾器,如果對(duì)這兩者不了解的話,可以先看看相關(guān)的內(nèi)容。

兩個(gè)大坑

我們先建一個(gè) Filter 來看看

public class ValidateFilter implements GlobalFilter, Ordered { @Override public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { ServerHttpRequest request = exchange.getRequest(); HttpHeaders headers = request.getHeaders(); MultiValueMap<String, HttpCookie> cookies = request.getCookies(); MultiValueMap<String, String> queryParams = request.getQueryParams(); Flux<DataBuffer> body = request.getBody(); return null; } @Override public int getOrder() { return 0; }}

從上邊的返回值可以看出,如果是取 Header、Cookie、Query Params 都易如反掌,如果你需要校驗(yàn)的數(shù)據(jù)在這三者之中的話,就沒必要往下看了。

說回 Body,這里是一個(gè)Flux<DataBuffer>,即一個(gè)包含 0-N 個(gè)DataBuffer類型元素的異步序列。

首先不考慮 Request Body 只能讀取一次問題(這個(gè)問題可以用緩存解決),我們先來把這個(gè) Flux 轉(zhuǎn)化成我們可以處理的字符串,第一反應(yīng)想到的有兩個(gè)辦法:

block() 異步變同步

subscribe() 訂閱并觸發(fā)序列

BUT,理想很豐滿,現(xiàn)實(shí)卻很骨感——這兩個(gè)辦法都有問題:

WebFlux 中不能使用阻塞的操作

java.lang.IllegalStateException: block()/blockFirst()/blockLast() are blocking, which is not supported in thread reactor-http-server-epoll-7

subscribe() 只會(huì)接收到第一個(gè)發(fā)出的元素,所以會(huì)導(dǎo)致獲取不全的問題(太長的 Body 會(huì)被截?cái)啵_@個(gè)問題網(wǎng)上有人用 AtomicReference<String> 來包裝獲取到字符串,有人用 StringBuilder/StringBuffer

以上兩個(gè)問題在網(wǎng)上找了半天,也沒找到一個(gè)靠譜的解決辦法,都是人云亦云。特別是第二個(gè)問題的所謂的“解決辦法”,大家無非就在是不遺余力的在展示 DataBuffer 轉(zhuǎn) String 的 N 種寫法,而沒有從根本上解決被截?cái)嗟膯栴}。

正確姿勢(shì)

2019.08.26 更新:

評(píng)論里有網(wǎng)友提醒到 Spring Cloud Gateway 2.1.2 下 DefaultServerRequest、CachedBodyOutputMessage 類的訪問權(quán)限已經(jīng)改了。這一塊我看了一下,源碼確實(shí)改動(dòng)了一些,不過 DefaultServerRequest 這個(gè)類已經(jīng)不需要了,而 CachedBodyOutputMessage 類我們可以模(chao)仿(xi)它的實(shí)現(xiàn)。

其實(shí)這里的實(shí)現(xiàn)不管再怎么變,我們只要死盯著 ModifyRequestBodyGatewayFilterFactory 就行了。即使以后這里邊的相關(guān)類的訪問權(quán)限都改成 Default 了,我們也不用一個(gè)個(gè)去抄一遍,只要在org.springframework.cloud.gateway.filter.factory.rewrite 這個(gè) package 下寫我們自己的類就好了。

Spring Cloud Gateway(讀取、修改 Request Body)的操作

———? 分割線 ———-

最終找到解決方案還是通過研讀 SCG 的源碼。

本文使用的版本:

Spring Cloud: Greenwich.RC2

Spring Boot: 2.1.1.RELEASE

在 org.springframework.cloud.gateway.filter.factory.rewrite 包下有個(gè) ModifyRequestBodyGatewayFilterFactory,顧名思義,這就是修改 Request Body 的過濾器工廠類。

但是這個(gè)類我們無法直接使用,因?yàn)橐玫脑掃@個(gè) FilterFactory 只能用 Fluent API 的方式配置,而無法在配置文件中使用,類似于這樣

.route('rewrite_request_upper', r -> r.host('*.rewriterequestupper.org') .filters(f -> f.prefixPath('/httpbin') .addResponseHeader('X-TestHeader', 'rewrite_request_upper') .modifyRequestBody(String.class, String.class, (exchange, s) -> { return Mono.just(s.toUpperCase()+s.toUpperCase()); }) ).uri(uri))

我更喜歡用配置文件來配置路由,所以這種方式并不是我的菜。

這時(shí)候我就需要自己弄一個(gè) GlobalFilter 了。既然官方已經(jīng)提供了“葫蘆”,那么我們就畫個(gè)“瓢”吧。

如果了解的 GatewayFilterFactory 和 GatewayFilter 的關(guān)系的話,不用我說你就知道該怎么辦了。不知道也沒關(guān)系,我們把 ModifyRequestBodyGatewayFilterFactory 中紅框部分 copy 出來,粘貼到我們之前創(chuàng)建的 ValidateFilter#filter 中

Spring Cloud Gateway(讀取、修改 Request Body)的操作

我們稍作修改,即可實(shí)現(xiàn)讀取并修改 Request Body 的功能了(核心部分見上圖黃色箭頭處)

/** * @author yibo */public class ValidateFilter implements GlobalFilter, Ordered { @Override public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { ServerRequest serverRequest = new DefaultServerRequest(exchange); // mediaType MediaType mediaType = exchange.getRequest().getHeaders().getContentType(); // read & modify body Mono<String> modifiedBody = serverRequest.bodyToMono(String.class) .flatMap(body -> { if (MediaType.APPLICATION_FORM_URLENCODED.isCompatibleWith(mediaType)) { // origin body map Map<String, Object> bodyMap = decodeBody(body); // TODO decrypt & auth // new body map Map<String, Object> newBodyMap = new HashMap<>(); return Mono.just(encodeBody(newBodyMap)); } return Mono.empty(); }); BodyInserter bodyInserter = BodyInserters.fromPublisher(modifiedBody, String.class); HttpHeaders headers = new HttpHeaders(); headers.putAll(exchange.getRequest().getHeaders()); // the new content type will be computed by bodyInserter // and then set in the request decorator headers.remove(HttpHeaders.CONTENT_LENGTH); CachedBodyOutputMessage outputMessage = new CachedBodyOutputMessage(exchange, headers); return bodyInserter.insert(outputMessage, new BodyInserterContext()) .then(Mono.defer(() -> { ServerHttpRequestDecorator decorator = new ServerHttpRequestDecorator( exchange.getRequest()) { @Override public HttpHeaders getHeaders() { long contentLength = headers.getContentLength(); HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.putAll(super.getHeaders()); if (contentLength > 0) {httpHeaders.setContentLength(contentLength); } else {httpHeaders.set(HttpHeaders.TRANSFER_ENCODING, 'chunked'); } return httpHeaders; } @Override public Flux<DataBuffer> getBody() { return outputMessage.getBody(); } }; return chain.filter(exchange.mutate().request(decorator).build()); })); } @Override public int getOrder() { return 0; } private Map<String, Object> decodeBody(String body) { return Arrays.stream(body.split('&')) .map(s -> s.split('=')) .collect(Collectors.toMap(arr -> arr[0], arr -> arr[1])); } private String encodeBody(Map<String, Object> map) { return map.entrySet().stream().map(e -> e.getKey() + '=' + e.getValue()).collect(Collectors.joining('&')); }}

至于拿到 Body 后具體要做什么,也就上邊代碼中的TODO部分,就由你自己來發(fā)揮吧~ 別玩壞就好

建議大家可以多關(guān)注關(guān)注 SCG 的源碼,說不定什么時(shí)候就會(huì)多出一些有用的 Filter 或 FilterFactory。

另外,目前 ModifyRequestBodyGatewayFilterFactory 上的 Javadoc 有這么一句話:

This filter is BETA and may be subject to change in a future release.

所以大家要保持關(guān)注呀~

以上這篇Spring Cloud Gateway(讀取、修改 Request Body)的操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 国产精品成人一区二区三区夜夜夜 | 亚洲啊v在线 | 国产精品综合一区二区 | 色天天综合久久久久综合片 | 日韩和的一区二区 | 日本精品999| 欧美日韩激情 | 黄色一级免费观看 | 国产精品99久久久久久久久久久久 | 欧美日韩不卡合集视频 | 色综合久久久久 | 亚洲免费观看视频 | 亚洲视频中文字幕 | 嫩草视频免费在线观看 | 日韩视频在线观看视频 | 国产一级免费网站 | a√免费视频 | 中文字国产精久久无 | 9191视频| 色偷偷噜噜噜亚洲男人 | 色伊人网| 亚洲精品视频网 | 亚洲国产精品第一区二区 | 久久精品久久久久久久久久久久久 | 日韩日韩日韩日韩日韩日韩 | 国产欧美一区二区精品忘忧草 | 午夜免费一区二区播放 | 一区二区三区在线视频播放 | 91精品综合久久久久久五月天 | 中文字幕永久第一页 | 操人网站 | 中文字幕在线观看 | 老汉色影院 | 欧美 日本 国产 | 成人av在线播放 | 在线不卡视频 | 91精品久久久久久久久中文字幕 | 日韩一区二区三区在线 | 男女精品| 国产综合精品一区二区三区 | 成人在线视频一区 | 久久亚洲精品视频 | 亚洲国产欧美在线 | 午夜私人视频 | 黑人粗黑大躁护士 | av成人在线观看 | 有码在线 | 国产免费黄色 | 国产一区二区免费电影 | 四虎影院最新网址 | 瑟瑟视频在线看 | 国产综合网站 | 成人免费视频在线观看 | 久久久精品日本 | 国产一区欧美 | 国产精品国产精品国产专区不卡 | 国产电影精品久久 | 国内精品视频一区二区三区八戒 | 五月综合婷 | 国产成人精品网站 | 99热新| 国产午夜精品一区二区三区 | 久久久久久久久一区二区 | 亚洲一区二区三区免费观看 | 一级毛片免费视频 | 九色视频网站 | 成人看片免费 | 99视频在线看 | 国产 在线 | 日韩 | 伊人青青操 | 中文字幕乱码亚洲精品一区 | 一区二区三区视频 | 久久xxx | 一区二区三区四区在线播放 | 亚洲国产一区视频 | 日本另类αv欧美另类aⅴ | 91免费在线播放 | 国产成人精品免费 | 天天操天天添 | 亚洲欧美一区二区三区在线 | 自拍偷拍专区 | 亚洲另类小视频 | 成人一级毛片 | 天天干天天操天天舔 | 99免费看 | 欧美99热 | 欧美午夜精品久久久久久浪潮 | 国产精品1区二区 | 国产三级精品三级 | 久久91久久久久麻豆精品 | 91精品久久久久久久久久入口 | 欧美精品一区二区三区在线播放 | 中文字幕视频三区 | 亚洲国产精品久久久久久 | 国产人免费人成免费视频 | a在线观看免费视频 | 亚洲精品二区 | 亚洲一区二区三区视频免费观看 | 欧美中文字幕在线 | 久久51| 在线观看中文字幕亚洲 | 久久久久久久一区 | 一区二区三区视频 | 日本免费网| 成人黄色片网站 | 久久精品成人一区二区三区蜜臀 | 91久久精品国产 | 91最新| yy6080久久伦理一区二区 | 精品久久久久久久久久久 | 麻豆av电影在线观看 | 精品中文字幕一区二区 | 综合五月激情 | 一本一道久久久a久久久精品91 | 国产视频亚洲 | 亚洲精品电影网在线观看 | 亚洲一区 日韩精品 中文字幕 | 久久久久久综合 | 一区二区免费视频 | 亚州视频在线 | 狠狠影院| 欧美一级片免费播放 | 噜噜噜视频在线观看 | 久草福利资源 | www.国产精品 | 亚洲精品久久久久一区二区三区 | 91亚洲国产成人久久精品网站 | 久久99精品国产99久久6男男 | 国家aaa的一级看片 操操操夜夜操 | 国产精品一区二区三区四区 | 久久午夜电影院 | 日韩中文字幕在线 | 欧美日韩精品一区二区三区在线观看 | 久久白虎 | 国产欧美久久久久久 | 亚洲欧美日韩精品久久亚洲区 | 亚洲一区 | 欧美成人高清视频 | 一区二区免费 | 亚洲精品一区二区三区蜜桃久 | 毛片久久 | 成人国产精品久久久 | 超碰导航 | 精品一区二区久久久久久久网站 | 国产高清一区二区三区 | 伊人精品视频在线观看 | 欧美成人黄色小说 | 亚洲精品一区二三区不卡 | 色女人av| 欧美日韩一区二区三区在线观看 | 久久首页 | 精品毛片 | 色香蕉视频 | 午夜影院18 | 久久久精品欧美一区二区免费 | 日韩欧美在线视频 | 国产日韩在线播放 | 日韩视频在线观看视频 | 中文字幕亚洲精品 | h片免费 | 亚洲www啪成人一区二区 | 综合网激情 | 久久99精品久久久水蜜桃 | 亚洲免费av在线 | 色999国产 | 国产精品99在线观看 | 日韩毛片| 少妇精品久久久久久久久久 | 在线91| 国产精品香蕉 | 日本一区二区高清不卡 | 毛片链接| 中文字幕日韩在线视频 | 亚洲精品日韩激情欧美 | 日韩福利在线 | 欧美激情精品久久久久久 | 免费观看的av | 免费欧美一级 | 欧美在线小视频 | 性欧美久久久 | 久久一区二区三区四区五区 | 欧美精品1区 | 黄视频在线播放 | 亚洲一区二区免费看 | 色吧久久| 欧美日韩国产在线播放 | 国产在线精品一区 | 色999精品 | 日本在线一区 | 国产精品久久久久久久久久小说 | 成人午夜精品久久久久久久3d | 久久国产一区二区三区 | 国产91综合一区在线观看 | 91精品国产综合久久久久久 | 日韩成人精品 | av在线影院 | 黄色在线免费观看 | av在线日韩 | 欧美日韩亚洲视频 | 一区二区在线视频 | 自拍偷拍一区二区三区 | 国产小视频在线播放 | 亚洲成人一区二区 | 日本69视频 | 久久久久久久99 | 韩国xxxx性hd极品 | 国产精品99久久久久久动医院 | 在线播放国产一区二区三区 | 亚洲成av| 偷拍做爰吃奶视频免费看 | 国产av毛片 | 超碰在线91 | 国产一区二区三区精品久久久 | 午夜影院在线观看 | 欧美精品一区二 | 9999国产精品欧美久久久久久 | 国产一区二区免费 | 久久久国产视频 | 国产精品污www在线观看 | 国产最新视频 | 一级黄色片在线 | 中文字幕国产在线视频 | 日韩色在线 | 干干人人 | 娇妻被朋友调教成玩物 | 久久国内 | 国精品一区二区三区 | 午夜午夜精品一区二区三区文 | 岛国一区| 亚洲jizzjizz日本少妇 | 国产电影一区二区在线观看 | 狠狠干美女 | 青青久久北条麻妃 | 一区二区免费看 | 日韩综合 | 亚洲一区欧美一区 | 久草在线免费福利资源 | 高清一区二区 | 国产视频三区 | 日韩三级电影在线免费观看 | 国产中文字幕在线观看 | 亚洲国产成人久久综合一区,久久久国产99 | 精品美女一区 | 国产91久久精品一区二区 | 欧洲成人午夜免费大片 | 在线中文字幕第一页 | 成人av影片在线观看 | 精品日韩在线 | 亚洲免费在线看 | 欧美99| 日韩一区二区中文字幕 | 国产一级片 | 久久99视频这里只有精品 | 2019亚洲日韩新视频 | 日本国产一区二区 | 伦理午夜电影免费观看 | 久久精品一区二区三区四区 | 国产视频h | 亚洲视频在线观看视频 | 波多野结衣 一区二区 | 免费黄色网址在线播放 | 中文在线一区 | 国产a视频| 国产精品成人在线观看 | 视频在线一区二区 | 亚洲精品国产电影 | 黄色小视频在线观看 | 老黄网站在线观看 | www.一区二区三区 | 亚洲成人激情在线观看 | 国产精品高清一区二区 | 婷婷伊人 | 国产精品3区 | 国产视频三区 | 综合精品 | 国产激情精品视频 | 99久草| 亚洲欧美精品 | 最新免费视频 | 午夜精品久久久久久久 | 久久综合狠狠综合久久 | 欧美精品第一页 | 中文字幕久久精品 | 日韩高清黄色 | 成人欧美一区二区三区视频xxx | 亚洲一区免费在线观看 | 欧美激情综合色综合啪啪五月 | 久久综合成人精品亚洲另类欧美 | 亚洲国产高清高潮精品美女 | 国产天天操 | 亚洲综合网站 | 日韩欧美一级精品久久 | 日韩欧美精品 | 在线观看黄 | 99成人在线视频 | 成人日韩 | 在线视频 中文字幕 | 一二三精品区 | 久久国产亚洲精品 | 北条麻妃一区二区免费播放 | 日韩视频在线观看 | 精品国产成人 | 日韩精品无码一区二区三区 | 欧美日本三级 | 国产精品视频久久 | 久久国产精品免费一区二区三区 | 色视频网站在线观看一=区 日韩一二三区 | 精品久久久网站 | 中文字幕 国产精品 | 亚洲成人日韩 | 91精品国产人妻国产毛片在线 | 国产高清美女一级a毛片久久 | 亚洲一区中文 | 欧美一区二区三区免费观看视频 | 日韩在线视频在线观看 | 国产精品久久久久久吹潮 | 久久精品一区二区三区四区 | 精品一区二区三区免费 | 国产综合精品一区二区三区 | 久久国产精品无码网站 | 精品免费久久 | 国产精品中文字幕在线观看 | 黄色片在线免费观看 | 一级免费av| 成av人在线| 欧美黄视频在线观看 | av免费网站在线观看 | 资源av| 亚洲国产精品自拍 | 亚洲永久免费视频 | 国产精品精品 | 久久精品国产一区二区电影 | 亚洲一区精品在线 | 成人欧美一区二区三区黑人孕妇 | 97伦理片 | 国产高清自拍 | 成人精品视频99在线观看免费 | 99这里只有精品视频 | 久久精品一 | 国产精品亚洲第一区在线暖暖韩国 | 亚洲综合精品 | 日韩一区二区福利视频 | 成人在线国产 | 日本不卡免费新一二三区 | 婷婷伊人| 国产一级黄 | 一级片免费在线视频 | 国产精品日韩精品 | 日韩在线一区二区 | 欧美三级视频在线播放 | 四色成人av永久网址 | 精品国产乱码久久久久久88av | 99re国产 | 91久久久久久久久 | 亚洲一区二区三区四区的 | 91国产精品 | а天堂中文最新一区二区三区 | 中文字幕a视频 | 日韩中文字幕在线视频 | 在线视频 欧美日韩 | 毛片站| 亚洲骚片 | 精久视频 | 在线观看欧美日韩视频 | 国产欧美一区二区精品忘忧草 | 国产午夜精品久久久久久久 | 久久精品久久久 | 国产精品一品二区三区的使用体验 | aa级毛片毛片免费观看久 | 欧美一级艳片视频免费观看 | 亚洲一区二区三区在线免费观看 | 欧美日韩一区二区三区在线观看 | 欧美激情网 | 欧美日韩在线一区 | 一区二区三区高清 | 亚洲精选久久久 | 精品久久久久一区二区国产 | 国产日产精品一区二区三区四区 | 久久精品国产77777蜜臀 | 色黄视频在线看 | 精品久久一二三区 | 自拍偷拍小视频 | 亚洲国产免费 | 偷拍呻吟高潮91 | 国产精品伦理 | 国产一区二区免费 | 国产激情偷乱视频一区二区三区 | 久久免费视频在线 | 久久久二 | 欧美一区二区免费在线 | 久久av综合| 免费毛片a线观看 | 成人黄色短视频在线观看 | 黄色片毛片 | 久久精品国产91精品亚洲高清 | 日韩一区二区三区在线 | 欧美日韩国产在线看 | 欧美精品在线一区 | 久久成人18免费网站 | 精品av| 午夜免费 | 网站一区二区三区 | 操到爽 | 亚洲欧美少妇 | 一级免费毛片 | 久久精品二区亚洲w码 | 国产超碰人人爽人人做人人爱 | 91爱爱| 精品在线一区 | 中文字幕在线一区 | 欧美一区二区三 | 久久国产精品久久久久久电车 | 亚洲毛片网站 | 91精品国产自产精品男人的天堂 | 51ⅴ精品国产91久久久久久 | 日本韩国欧美一区 | 国产精品美女视频 | 欧美一级特黄aaaaaaa视频片 | 免费h在线观看 | 久久久精品| 国产区视频 | 午夜精品久久久久久久久久久久久 | 亚洲欧美第一页 | 免费看国产一级特黄aaaa大片 | 久久99精品久久久久久琪琪 | 午夜久久乐 | 欧美日本韩国一区二区 | 国产拍揄自揄精品视频麻豆 | 久久99这里只有精品 | 成人av网站在线 | 亚洲情网站 | 国产精品不卡 | 欧美激情在线播放 | 欧美在线高清 | 亚洲福利影院 | 成人免费一区二区三区视频网站 | 日韩成人在线一区 | 日韩一区二区三区在线观看 | 国产男女视频在线观看 | 日本三级电影免费 | 国产精彩视频 | 日本成年人免费网站 | 91夜夜夜| www.se天堂| 午夜视频网站 | 中文字幕一区二区三区四区 | 天天爽夜夜爽夜夜爽精品视频 | 91精品国产一区二区三区蜜臀 | h片免费观看 | 97国产精品视频人人做人人爱 | 日韩一区中文字幕 | 国产欧美综合一区二区三区 | 国产成人亚洲综合 | 激情99| 久久久久久香蕉 | 久草网在线视频 | 欧美一二三 | 在线日韩视频 | 精品成人在线 | 成人精品鲁一区一区二区 | 在线免费国产 | 欧美在线观看免费观看视频 | 免费看91| 国产日韩欧美在线 | 国产精品亚洲成在人线 | 国产福利视频在线观看 | 在线观看国产www | 亚洲中出| 亚洲国产精品网站 | 在线视频a | 亚洲精品自拍视频 | 成人h在线| 国产精品国产三级国产aⅴ原创 | av大全在线 | 中文字幕日韩在线 | 国产片侵犯亲女视频播放 | 成人 在线 | 日本特黄特色aaa大片免费 | 在线成人www免费观看视频 | √新版天堂资源在线资源 | 男女视频免费在线观看 | 美女在线国产 | 久久av黄色 | www.亚洲区| 日韩超碰在线观看 | 国产精品一区二区三区在线播放 | 日韩欧美视频一区 | 成人精品一区二区 | 欧美日韩一区二区在线 | 91国内精品| 午夜国产羞羞视频免费网站 | 国产欧美一区二区视频 | 国产成人在线播放 | 国产黄色在线观看 | 日韩欧美一区二区在线观看视频 | 欧美啪啪一区二区 | 亚洲欧美国产精品久久 | 日韩1区3区4区第一页 | 久久四色 | 国产精品久久久久久久久动漫 | 久久这里只有精品免费 | 国产精品45p | 在线观看免费视频亚洲 | 欧美激情在线精品一区二区三区 | 综合久久精品 | 日韩一区二区在线观看 | 成人在线看片网站 | 亚洲精品乱码久久久久久国产主播 | 久草视频在线播放 | 国产精品毛片一区视频播 | 午夜精品久久久 | 久久亚洲综合 | 成人国产精品久久久 | 精品久久久久久久久久久久久久 | 午夜精品久久 | 亚洲品质自拍视频网站 | 黄色免费网站观看 | 欧美五月| 看亚洲a级一级毛片 | 亚洲成人精品视频 | 日韩欧美一区二区在线观看视频 | 色天天天天色 | 亚洲精品色 | 爽死777影院 | 精品久久久久久久久久久久久久久久久久久 | av一区二区在线观看 | 一二三区在线 | 五月激情站 | 成人综合在线观看 | 国产最新网址 | 99青青草 | 天天网| 国产视频1 | 国产欧美精品 | 久久免费精品视频 | www.日韩大片| 免费观看国产视频在线 | 久久99国产伦子精品免费 | 久久久久久91| 国产精品毛片久久久久久久 | 色中色综合 | 午夜国产视频 | 一区二区三区在线免费观看 | 日本久久久久久久 | 久久精品一区二区三区四区毛片 | 一二三区av | 香蕉久久一区二区不卡无毒影院 | 日本三级做a全过程在线观看 | 欧美黄色a视频 | 久久综合99re88久久爱 | 亚洲一区二区三区在线视频 | 欧美高潮 | 特黄特黄a级毛片免费专区 av网站免费在线观看 | 一a级毛片 | 久久av一区二区三区 | 国产96精品久久久 | 中文字幕一区二区三区乱码在线 | 波多野结衣精品 | 性欧美久久久 | 99视频免费观看 | 91在线视频播放 | 亚洲精品9999 | 国产黄视频在线 | 狠狠操狠狠干 | 欧美精品一区在线观看 | 亚洲国产高清在线 | 91极品视频在线观看 | 国产午夜精品久久 | 久久成人免费视频 | 国产精品视频免费播放 | 在线看一区 | 国产一区二区免费 | 亚洲成人一区二区 | 亚洲精品国产偷自在线观看 | 美女福利视频 | 国产福利在线视频 | 日韩一区二区在线观看 | 天天夜碰日日摸日日澡 | h在线视频 | 激情综合色综合久久综合 | 成人精品一区二区三区中文字幕 | 国产91综合一区在线观看 | 亚洲免费视频观看 | 国产成人av电影 | 一级片黄片毛片 | www.久久久久久久久久久久 | 玖玖精品视频 | 国产精品视频导航 | 日韩一区二区三区福利视频 | 美日韩精品视频 | 国产精品久久免费看 | 国产一区二区视频在线观看 | 欧美激情一区二区三区四区 | 亚洲777| aaaaaa黄色片 | 国产在线日韩 | 一级一级一级一级毛片 | 欧美高清成人 | 7777视频| 欧美精品一二区 | 91久久精品一区二区三区 | 国产精品亚洲精品日韩已方 | 成人亚洲区| 国产人妖在线 | 日韩精品一区二区在线观看视频 | 国产精品视频一区二区三区 | 国产高清一区二区 | 精品亚洲视频在线 | 精品久久97 | 视频一区二区三区中文字幕 | 成人国产在线 | 欧美日韩视频在线 | 精品国产乱码久久久久久久软件 | av中文字幕在线播放 | 国内自拍第一页 |