日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

过滤器获取service方法返回慢_Gateway:自定义过滤器

發(fā)布時(shí)間:2025/3/20 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 过滤器获取service方法返回慢_Gateway:自定义过滤器 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

自定義局部過濾器

需求:在application.yml中對(duì)某個(gè)路由配置過濾器,該過濾器可以在控制臺(tái)輸出配置文件中指定名稱的請(qǐng)求參數(shù)的值。

在gateway-server模塊中編寫過濾器工廠類MyParamGatewayFilterFactory

package?com.icoding.filter;

import?org.springframework.cloud.gateway.filter.GatewayFilter;
import?org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;
import?org.springframework.http.server.reactive.ServerHttpRequest;
import?org.springframework.stereotype.Component;

import?java.util.Arrays;
import?java.util.List;

/**?自定義局部過濾器?*/
@Component
public?class?MyParamGatewayFilterFactory?extends
????????AbstractGatewayFilterFactory?{
????private?static?final?String?PARAM_KEY?=?"param";
????/**?定義構(gòu)造器(必須)?*/
????public?MyParamGatewayFilterFactory(){
????????super(Config.class);
????}
????/**?接收過濾器傳進(jìn)來(lái)的字段集合(可選)?*/
????@Override
????public?List?shortcutFieldOrder()?{return?Arrays.asList(PARAM_KEY);
????}
????/**?重寫攔截方法(必須)?*/
????@Override
????public?GatewayFilter?apply(Config?config)?{return?(exchange,?chain)?->?{
????????????//?獲取請(qǐng)求對(duì)象
????????????ServerHttpRequest?request?=?exchange.getRequest();
????????????//?獲取請(qǐng)求參數(shù)?http://localhost:10010/api/user/get/2?name=zhangsan&age=30if?(request.getQueryParams().containsKey(config.param)){
????????????????request.getQueryParams().get(config.param).forEach(value?->?{
????????????????????System.out.println(config.param?+?"?=?"?+?value);
????????????????});
????????????}
????????????//?放行return?chain.filter(exchange);
????????};
????}
????/**?定義配置類,接收配置文件中的屬性(必須)?*/
????public?static?class?Config?{
????????private?String?param;
????????public?String?getParam()?{return?param;
????????}
????????public?void?setParam(String?param)?{
????????????this.param?=?param;
????????}
????}
}

在gateway-server模塊中修改application.yml配置文件

package?com.icoding.filter;

import?org.springframework.cloud.gateway.filter.GatewayFilter;
import?org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;
import?org.springframework.http.server.reactive.ServerHttpRequest;
import?org.springframework.stereotype.Component;

import?java.util.Arrays;
import?java.util.List;

/**?自定義局部過濾器?*/
@Component
public?class?MyParamGatewayFilterFactory?extends
????????AbstractGatewayFilterFactory?{
????private?static?final?String?PARAM_KEY?=?"param";
????/**?定義構(gòu)造器(必須)?*/
????public?MyParamGatewayFilterFactory(){
????????super(Config.class);
????}
????/**?接收過濾器傳進(jìn)來(lái)的字段集合(可選)?*/
????@Override
????public?List?shortcutFieldOrder()?{return?Arrays.asList(PARAM_KEY);
????}
????/**?重寫攔截方法(必須)?*/
????@Override
????public?GatewayFilter?apply(Config?config)?{return?(exchange,?chain)?->?{
????????????//?獲取請(qǐng)求對(duì)象
????????????ServerHttpRequest?request?=?exchange.getRequest();
????????????//?獲取請(qǐng)求參數(shù)?http://localhost:10010/api/user/get/2?name=zhangsan&age=30if?(request.getQueryParams().containsKey(config.param)){
????????????????request.getQueryParams().get(config.param).forEach(value?->?{
????????????????????System.out.println(config.param?+?"?=?"?+?value);
????????????????});
????????????}
????????????//?放行return?chain.filter(exchange);
????????};
????}
????/**?定義配置類,接收配置文件中的屬性(必須)?*/
????public?static?class?Config?{
????????private?String?param;
????????public?String?getParam()?{return?param;
????????}
????????public?void?setParam(String?param)?{
????????????this.param?=?param;
????????}
????}
}server:
??port:?10010
spring:
??application:
????name:?api-gateway
??cloud:
????gateway:#?默認(rèn)過濾器,對(duì)所有路由生效
??????default-filters:#?添加響應(yīng)頭過濾器,添加一個(gè)響應(yīng)頭為name,值為admin
????????-?AddResponseHeader=name,admin
??????routes:#?路由id,可以隨意寫
????????-?id:?user-service-route#?代理的服務(wù)地址;lb表示負(fù)載均衡(從eureka中獲取具體服務(wù))
??????????uri:?lb://user-service#?路由斷言,可以配置映射路徑
??????????predicates:
????????????-?Path=/api/user/**
??????????filters:#?表示過濾1個(gè)路徑,2表示兩個(gè)路徑,以此類推
????????????-?StripPrefix=1#?自定義過濾器
????????????-?MyParam=name
eureka:
??client:
????service-url:
??????defaultZone:?http://localhost:8761/eureka,http://localhost:8762/eurekaserver:
??port:?10010
spring:
??application:
????name:?api-gateway
??cloud:
????gateway:#?默認(rèn)過濾器,對(duì)所有路由生效
??????default-filters:#?添加響應(yīng)頭過濾器,添加一個(gè)響應(yīng)頭為name,值為admin
????????-?AddResponseHeader=name,admin
??????routes:#?路由id,可以隨意寫
????????-?id:?user-service-route#?代理的服務(wù)地址;lb表示負(fù)載均衡(從eureka中獲取具體服務(wù))
??????????uri:?lb://user-service#?路由斷言,可以配置映射路徑
??????????predicates:
????????????-?Path=/api/user/**
??????????filters:#?表示過濾1個(gè)路徑,2表示兩個(gè)路徑,以此類推
????????????-?StripPrefix=1#?自定義過濾器
????????????-?MyParam=name
eureka:
??client:
????service-url:
??????defaultZone:?http://localhost:8761/eureka,http://localhost:8762/eureka

測(cè)試訪問

http://localhost:10010/api/user/1?name=admin 檢查后臺(tái)是否輸出name和admin

http://localhost:10010/api/user/1?name2=admin 則是不會(huì)輸出的。

自定義全局過濾器

需求:模擬一個(gè)登錄的校驗(yàn)。基本邏輯:如果請(qǐng)求中有token參數(shù),則認(rèn)為請(qǐng)求有效,放行。

在gateway-server模塊中編寫全局過濾器類MyGlobalFilter

課堂代碼:

package?com.icoding.filter;

import?org.springframework.cloud.gateway.filter.GatewayFilter;
import?org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;
import?org.springframework.http.server.reactive.ServerHttpRequest;
import?org.springframework.stereotype.Component;

import?java.util.Arrays;
import?java.util.List;

/**?自定義局部過濾器?*/
@Component
public?class?MyParamGatewayFilterFactory?extends
????????AbstractGatewayFilterFactory?{
????private?static?final?String?PARAM_KEY?=?"param";
????/**?定義構(gòu)造器(必須)?*/
????public?MyParamGatewayFilterFactory(){
????????super(Config.class);
????}
????/**?接收過濾器傳進(jìn)來(lái)的字段集合(可選)?*/
????@Override
????public?List?shortcutFieldOrder()?{return?Arrays.asList(PARAM_KEY);
????}
????/**?重寫攔截方法(必須)?*/
????@Override
????public?GatewayFilter?apply(Config?config)?{return?(exchange,?chain)?->?{
????????????//?獲取請(qǐng)求對(duì)象
????????????ServerHttpRequest?request?=?exchange.getRequest();
????????????//?獲取請(qǐng)求參數(shù)?http://localhost:10010/api/user/get/2?name=zhangsan&age=30if?(request.getQueryParams().containsKey(config.param)){
????????????????request.getQueryParams().get(config.param).forEach(value?->?{
????????????????????System.out.println(config.param?+?"?=?"?+?value);
????????????????});
????????????}
????????????//?放行return?chain.filter(exchange);
????????};
????}
????/**?定義配置類,接收配置文件中的屬性(必須)?*/
????public?static?class?Config?{
????????private?String?param;
????????public?String?getParam()?{return?param;
????????}
????????public?void?setParam(String?param)?{
????????????this.param?=?param;
????????}
????}
}server:
??port:?10010
spring:
??application:
????name:?api-gateway
??cloud:
????gateway:#?默認(rèn)過濾器,對(duì)所有路由生效
??????default-filters:#?添加響應(yīng)頭過濾器,添加一個(gè)響應(yīng)頭為name,值為admin
????????-?AddResponseHeader=name,admin
??????routes:#?路由id,可以隨意寫
????????-?id:?user-service-route#?代理的服務(wù)地址;lb表示負(fù)載均衡(從eureka中獲取具體服務(wù))
??????????uri:?lb://user-service#?路由斷言,可以配置映射路徑
??????????predicates:
????????????-?Path=/api/user/**
??????????filters:#?表示過濾1個(gè)路徑,2表示兩個(gè)路徑,以此類推
????????????-?StripPrefix=1#?自定義過濾器
????????????-?MyParam=name
eureka:
??client:
????service-url:
??????defaultZone:?http://localhost:8761/eureka,http://localhost:8762/eurekaserver:
??port:?10010
spring:
??application:
????name:?api-gateway
??cloud:
????gateway:#?默認(rèn)過濾器,對(duì)所有路由生效
??????default-filters:#?添加響應(yīng)頭過濾器,添加一個(gè)響應(yīng)頭為name,值為admin
????????-?AddResponseHeader=name,admin
??????routes:#?路由id,可以隨意寫
????????-?id:?user-service-route#?代理的服務(wù)地址;lb表示負(fù)載均衡(從eureka中獲取具體服務(wù))
??????????uri:?lb://user-service#?路由斷言,可以配置映射路徑
??????????predicates:
????????????-?Path=/api/user/**
??????????filters:#?表示過濾1個(gè)路徑,2表示兩個(gè)路徑,以此類推
????????????-?StripPrefix=1#?自定義過濾器
????????????-?MyParam=name
eureka:
??client:
????service-url:
????? defaultZone: http://localhost:8761/eureka,http://localhost:8762/eurekapackage com.icoding.filter;import org.apache.commons.lang.StringUtils;import org.springframework.cloud.gateway.filter.GatewayFilterChain;import org.springframework.cloud.gateway.filter.GlobalFilter;import org.springframework.core.Ordered;import org.springframework.core.annotation.Order;import org.springframework.http.HttpStatus;import org.springframework.stereotype.Component;import org.springframework.web.server.ServerWebExchange;import reactor.core.publisher.Mono;/**?*?全局過濾器?*/????@Component//?@Order(1)????:? Ordered這個(gè)接口也可以使用注解來(lái)排序public class MyGlobalFilter implements GlobalFilter, Ordered {????/*如果你有token就讓他們?cè)L問,如果沒有token,不讓訪問*/????@Override ?? public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain)?{??????? System.out.println("全局過濾器執(zhí)行了。。。。。。。");????????//獲取參數(shù)????????String?token?=?exchange.getRequest().getQueryParams().getFirst("token");????????/*????????*??String?aa?=?"";????????*??String?bb?=?"??????????";????????*??String?cc?=?null;????????*????????*???如果是isBlank?都是返回true????????*????????*?*/????????if(StringUtils.isBlank(token)){????????????//為空,token沒有值,阻止往下執(zhí)行??????????? exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);?//設(shè)置返回的狀態(tài)碼????????????//不會(huì)繼續(xù)往下執(zhí)行了!????????????return?exchange.getResponse().setComplete();????????}????????//放行????????return?chain.filter(exchange);????}????/*數(shù)值越小越先執(zhí)行*/????@Override????public?int?getOrder()?{????????return?5;????}}package com.icoding.filter;import org.apache.commons.lang.StringUtils;import org.springframework.cloud.gateway.filter.GatewayFilterChain;import org.springframework.cloud.gateway.filter.GlobalFilter;import org.springframework.core.Ordered;import org.springframework.core.annotation.Order;import org.springframework.http.HttpStatus;import org.springframework.stereotype.Component;import org.springframework.web.server.ServerWebExchange;import reactor.core.publisher.Mono;/**?*?全局過濾器?*/????@Component//?@Order(1)????:? Ordered這個(gè)接口也可以使用注解來(lái)排序public class MyGlobalFilter implements GlobalFilter, Ordered {????/*如果你有token就讓他們?cè)L問,如果沒有token,不讓訪問*/????@Override ?? public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain)?{??????? System.out.println("全局過濾器執(zhí)行了。。。。。。。");????????//獲取參數(shù)????????String?token?=?exchange.getRequest().getQueryParams().getFirst("token");????????/*????????*??String?aa?=?"";????????*??String?bb?=?"??????????";????????*??String?cc?=?null;????????*????????*???如果是isBlank?都是返回true????????*????????*?*/????????if(StringUtils.isBlank(token)){????????????//為空,token沒有值,阻止往下執(zhí)行??????????? exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);?//設(shè)置返回的狀態(tài)碼????????????//不會(huì)繼續(xù)往下執(zhí)行了!????????????return?exchange.getResponse().setComplete();????????}????????//放行????????return?chain.filter(exchange);????}????/*數(shù)值越小越先執(zhí)行*/????@Override????public?int?getOrder()?{????????return?5;????}}package?com.icoding.filter;

import?org.springframework.cloud.gateway.filter.GatewayFilter;
import?org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;
import?org.springframework.http.server.reactive.ServerHttpRequest;
import?org.springframework.stereotype.Component;

import?java.util.Arrays;
import?java.util.List;

/**?自定義局部過濾器?*/
@Component
public?class?MyParamGatewayFilterFactory?extends
????????AbstractGatewayFilterFactory?{
????private?static?final?String?PARAM_KEY?=?"param";
????/**?定義構(gòu)造器(必須)?*/
????public?MyParamGatewayFilterFactory(){
????????super(Config.class);
????}
????/**?接收過濾器傳進(jìn)來(lái)的字段集合(可選)?*/
????@Override
????public?List?shortcutFieldOrder()?{return?Arrays.asList(PARAM_KEY);
????}
????/**?重寫攔截方法(必須)?*/
????@Override
????public?GatewayFilter?apply(Config?config)?{return?(exchange,?chain)?->?{
????????????//?獲取請(qǐng)求對(duì)象
????????????ServerHttpRequest?request?=?exchange.getRequest();
????????????//?獲取請(qǐng)求參數(shù)?http://localhost:10010/api/user/get/2?name=zhangsan&age=30if?(request.getQueryParams().containsKey(config.param)){
????????????????request.getQueryParams().get(config.param).forEach(value?->?{
????????????????????System.out.println(config.param?+?"?=?"?+?value);
????????????????});
????????????}
????????????//?放行return?chain.filter(exchange);
????????};
????}
????/**?定義配置類,接收配置文件中的屬性(必須)?*/
????public?static?class?Config?{
????????private?String?param;
????????public?String?getParam()?{return?param;
????????}
????????public?void?setParam(String?param)?{
????????????this.param?=?param;
????????}
????}
}server:
??port:?10010
spring:
??application:
????name:?api-gateway
??cloud:
????gateway:#?默認(rèn)過濾器,對(duì)所有路由生效
??????default-filters:#?添加響應(yīng)頭過濾器,添加一個(gè)響應(yīng)頭為name,值為admin
????????-?AddResponseHeader=name,admin
??????routes:#?路由id,可以隨意寫
????????-?id:?user-service-route#?代理的服務(wù)地址;lb表示負(fù)載均衡(從eureka中獲取具體服務(wù))
??????????uri:?lb://user-service#?路由斷言,可以配置映射路徑
??????????predicates:
????????????-?Path=/api/user/**
??????????filters:#?表示過濾1個(gè)路徑,2表示兩個(gè)路徑,以此類推
????????????-?StripPrefix=1#?自定義過濾器
????????????-?MyParam=name
eureka:
??client:
????service-url:
??????defaultZone:?http://localhost:8761/eureka,http://localhost:8762/eurekaserver:
??port:?10010
spring:
??application:
????name:?api-gateway
??cloud:
????gateway:#?默認(rèn)過濾器,對(duì)所有路由生效
??????default-filters:#?添加響應(yīng)頭過濾器,添加一個(gè)響應(yīng)頭為name,值為admin
????????-?AddResponseHeader=name,admin
??????routes:#?路由id,可以隨意寫
????????-?id:?user-service-route#?代理的服務(wù)地址;lb表示負(fù)載均衡(從eureka中獲取具體服務(wù))
??????????uri:?lb://user-service#?路由斷言,可以配置映射路徑
??????????predicates:
????????????-?Path=/api/user/**
??????????filters:#?表示過濾1個(gè)路徑,2表示兩個(gè)路徑,以此類推
????????????-?StripPrefix=1#?自定義過濾器
????????????-?MyParam=name
eureka:
??client:
????service-url:
????? defaultZone: http://localhost:8761/eureka,http://localhost:8762/eurekapackage com.icoding.filter;import org.apache.commons.lang.StringUtils;import org.springframework.cloud.gateway.filter.GatewayFilterChain;import org.springframework.cloud.gateway.filter.GlobalFilter;import org.springframework.core.Ordered;import org.springframework.core.annotation.Order;import org.springframework.http.HttpStatus;import org.springframework.stereotype.Component;import org.springframework.web.server.ServerWebExchange;import reactor.core.publisher.Mono;/**?*?全局過濾器?*/????@Component//?@Order(1)????:? Ordered這個(gè)接口也可以使用注解來(lái)排序public class MyGlobalFilter implements GlobalFilter, Ordered {????/*如果你有token就讓他們?cè)L問,如果沒有token,不讓訪問*/????@Override ?? public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain)?{??????? System.out.println("全局過濾器執(zhí)行了。。。。。。。");????????//獲取參數(shù)????????String?token?=?exchange.getRequest().getQueryParams().getFirst("token");????????/*????????*??String?aa?=?"";????????*??String?bb?=?"??????????";????????*??String?cc?=?null;????????*????????*???如果是isBlank?都是返回true????????*????????*?*/????????if(StringUtils.isBlank(token)){????????????//為空,token沒有值,阻止往下執(zhí)行??????????? exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);?//設(shè)置返回的狀態(tài)碼????????????//不會(huì)繼續(xù)往下執(zhí)行了!????????????return?exchange.getResponse().setComplete();????????}????????//放行????????return?chain.filter(exchange);????}????/*數(shù)值越小越先執(zhí)行*/????@Override????public?int?getOrder()?{????????return?5;????}}package com.icoding.filter;import org.apache.commons.lang.StringUtils;import org.springframework.cloud.gateway.filter.GatewayFilterChain;import org.springframework.cloud.gateway.filter.GlobalFilter;import org.springframework.core.Ordered;import org.springframework.core.annotation.Order;import org.springframework.http.HttpStatus;import org.springframework.stereotype.Component;import org.springframework.web.server.ServerWebExchange;import reactor.core.publisher.Mono;/**?*?全局過濾器?*/????@Component//?@Order(1)????:? Ordered這個(gè)接口也可以使用注解來(lái)排序public class MyGlobalFilter implements GlobalFilter, Ordered {????/*如果你有token就讓他們?cè)L問,如果沒有token,不讓訪問*/????@Override ?? public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain)?{??????? System.out.println("全局過濾器執(zhí)行了。。。。。。。");????????//獲取參數(shù)????????String?token?=?exchange.getRequest().getQueryParams().getFirst("token");????????/*????????*??String?aa?=?"";????????*??String?bb?=?"??????????";????????*??String?cc?=?null;????????*????????*???如果是isBlank?都是返回true????????*????????*?*/????????if(StringUtils.isBlank(token)){????????????//為空,token沒有值,阻止往下執(zhí)行??????????? exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);?//設(shè)置返回的狀態(tài)碼????????????//不會(huì)繼續(xù)往下執(zhí)行了!????????????return?exchange.getResponse().setComplete();????????}????????//放行????????return?chain.filter(exchange);????}????/*數(shù)值越小越先執(zhí)行*/????@Override????public?int?getOrder()?{????????return?5;????}}package?com.icoding.filter;
import?org.apache.commons.lang.StringUtils;
import?org.springframework.cloud.gateway.filter.GatewayFilterChain;
import?org.springframework.cloud.gateway.filter.GlobalFilter;
import?org.springframework.core.Ordered;
import?org.springframework.http.HttpStatus;
import?org.springframework.stereotype.Component;
import?org.springframework.web.server.ServerWebExchange;
import?reactor.core.publisher.Mono;
/**?自定義全局過濾器?*/
@Component
public?class?MyGlobalFilter?implements?GlobalFilter,?Ordered?{
????@Override
????public?Mono?filter(ServerWebExchange?exchange,?GatewayFilterChain?chain)?{
????????System.out.println("==全局過濾器MyGlobalFilter==");
????????String?token?=?exchange.getRequest().getQueryParams().getFirst("token");if?(StringUtils.isBlank(token)){
????????????//?設(shè)置響應(yīng)狀態(tài)碼:?401?未授權(quán)
????????????exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
????????????//?返回響應(yīng)完成return?exchange.getResponse().setComplete();
????????}
????????//?放行return?chain.filter(exchange);
????}
????@Override
????public?int?getOrder()?{
????????//?值越小越先執(zhí)行return?1;
????}
package?com.icoding.filter;
import?org.apache.commons.lang.StringUtils;
import?org.springframework.cloud.gateway.filter.GatewayFilterChain;
import?org.springframework.cloud.gateway.filter.GlobalFilter;
import?org.springframework.core.Ordered;
import?org.springframework.http.HttpStatus;
import?org.springframework.stereotype.Component;
import?org.springframework.web.server.ServerWebExchange;
import?reactor.core.publisher.Mono;
/**?自定義全局過濾器?*/
@Component
public?class?MyGlobalFilter?implements?GlobalFilter,?Ordered?{
????@Override
????public?Mono?filter(ServerWebExchange?exchange,?GatewayFilterChain?chain)?{
????????System.out.println("==全局過濾器MyGlobalFilter==");
????????String?token?=?exchange.getRequest().getQueryParams().getFirst("token");if?(StringUtils.isBlank(token)){
????????????//?設(shè)置響應(yīng)狀態(tài)碼:?401?未授權(quán)
????????????exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
????????????//?返回響應(yīng)完成return?exchange.getResponse().setComplete();
????????}
????????//?放行return?chain.filter(exchange);
????}
????@Override
????public?int?getOrder()?{
????????//?值越小越先執(zhí)行return?1;
????}

測(cè)試訪問

訪問 http://localhost:10010/api/user/1

訪問 http://localhost:10010/api/user/1?token=admin

回復(fù)關(guān)鍵詞

?JUC????分布式限流???消息隊(duì)列???alibaba????JVM性能調(diào)優(yōu)????

看更多精彩教程

別忘了點(diǎn)個(gè)在看哦!轉(zhuǎn)發(fā)那就太好了!

總結(jié)

以上是生活随笔為你收集整理的过滤器获取service方法返回慢_Gateway:自定义过滤器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲国产精品成人无久久精品 | 五月丁香 | 无码人妻丰满熟妇区96 | 偷拍女澡堂一区二区三区 | 性欧美又大又长又硬 | 亚洲国产精品久久久久婷婷老年 | 亚洲精品91在线 | 国产青青| 91性生活| 中文字幕第88页 | 美女综合网 | 一区二区国产精品 | 色视频免费在线观看 | 97超碰免费在线观看 | 五月天欧美 | 97av.com | 欧美在线观看视频 | av中文在线播放 | 欧美性猛交xxxx乱大交退制版 | 日韩av线观看 | 中文字幕在线观 | 久久国产精品电影 | 韩国三级在线视频 | 中文人妻一区二区三区 | 日韩黄色影院 | 成人性生交大片免费卡看 | 男人与雌宠物交h | 99爱视频| japanese av在线 | 涩涩涩av | 我要色综合天天 | 国产av电影一区 | 日韩不卡视频一区二区 | 午夜xxxxx| 夜夜撸影院 | 日韩av高清无码 | 国产精品成人一区二区三区 | 久草福利在线观看 | 亚洲大片| 国产嗷嗷叫 | 国产亚洲精品久久久久丝瓜 | 欧美综合第一页 | 日本一级理论片在线大全 | 国产精品久久久久久久久久久久久久久久久 | 国产精品一区二区在线免费观看 | 色视频在线观看 | 91欧美激情一区二区三区成人 | 中文字幕日韩在线播放 | 国产吞精囗交免费视频网站 | 97视频免费在线 | 国产福利91精品 | 国产chinese中国hdxxxx | 久久不射网 | 国产在线一二三区 | 亚洲免费高清 | 91好色先生| 91丨porny丨露出 | 爱乃なみ加勒比在线播放 | 18禁男女爽爽爽午夜网站免费 | 人妻巨大乳hd免费看 | 午夜国产福利视频 | 99精品视频免费版的特色功能 | 欧美日韩人妻精品一区 | 中文字幕精品一区二区精品 | 人人人爽 | 成人免费毛片免费 | 日本不卡免费 | 亚洲乱色 | 激情五月激情 | 极品在线播放 | 伊人精品一区二区三区 | 亚洲黑丝在线 | 免费性视频 | 国内精品视频一区二区三区 | 91桃色在线观看 | 91美女片黄 | 日韩视频在线观看 | juliaann第一次和老师 | 操白虎逼| 777av| 欧美岛国国产 | 久久久免费 | 国产成人精品无码免费看在线 | 日本少妇大战黑人 | 欧美黄网站在线观看 | 国产精品另类 | 男生吃小头头的视频 | 欧美综合在线视频 | 亚洲av高清一区二区三区 | 久草视频免费播放 | 99热99热 | 久久久久国产精品 | 自拍偷拍欧美日韩 | 国产麻豆剧传媒精品国产av | 色呦网站| 亚洲精品一二三 | 日韩精品视频在线观看网站 | 国产精品视频一二三 | 国产精品免费看 |