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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

@slf4j注解_SpringBoot + Redis + 注解 + 拦截器 实现接口幂等性校验

發布時間:2024/1/23 javascript 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 @slf4j注解_SpringBoot + Redis + 注解 + 拦截器 实现接口幂等性校验 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、概念

冪等性, 通俗的說就是一個接口, 多次發起同一個請求, 必須保證操作只能執行一次

比如:

  • 訂單接口, 不能多次創建訂單
  • 支付接口, 重復支付同一筆訂單只能扣一次錢
  • 支付寶回調接口, 可能會多次回調, 必須處理重復回調
  • 普通表單提交接口, 因為網絡超時等原因多次點擊提交, 只能成功一次
    等等

二、常見解決方案

  • 唯一索引 -- 防止新增臟數據
  • token機制 -- 防止頁面重復提交
  • 悲觀鎖 -- 獲取數據的時候加鎖(鎖表或鎖行)
  • 樂觀鎖 -- 基于版本號version實現, 在更新數據那一刻校驗數據
  • 分布式鎖 -- redis(jedis、redisson)或zookeeper實現
  • 狀態機 -- 狀態變更, 更新數據時判斷狀態
  • 三、本文實現

    本文采用第2種方式實現, 即通過redis + token機制實現接口冪等性校驗

    四、實現思路

    為需要保證冪等性的每一次請求創建一個唯一標識token, 先獲取token, 并將此token存入redis, 請求接口時, 將此token放到header或者作為請求參數請求接口, 后端接口判斷redis中是否存在此token:

    • 如果存在, 正常處理業務邏輯, 并從redis中刪除此token, 那么, 如果是重復請求, 由于token已被刪除, 則不能通過校驗, 返回請勿重復操作提示
    • 如果不存在, 說明參數不合法或者是重復請求, 返回提示即可

    五、項目簡介

    • springboot
    • redis
    • @ApiIdempotent注解 + 攔截器對請求進行攔截
    • @ControllerAdvice全局異常處理
    • 壓測工具: jmeter

    說明:

    • 本文重點介紹冪等性核心實現, 關于springboot如何集成redis、ServerResponse、ResponseCode等細枝末節不在本文討論范圍之內, 有興趣的小伙伴可以查看我的Github項目:https://github.com/wangzaiplus/springboot/tree/wxw

    六、代碼實現

    1.pom

    <!-- Redis-Jedis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> <!--lombok 本文用到@Slf4j注解, 也可不引用, 自定義log即可--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.10</version> </dependency>

    2.JedisUtil

    package com.wangzaiplus.test.util; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; @Component @Slf4j public class JedisUtil {@Autowiredprivate JedisPool jedisPool;private Jedis getJedis() {return jedisPool.getResource();}/*** 設值** @param key* @param value* @return*/public String set(String key, String value) {Jedis jedis = null;try {jedis = getJedis();return jedis.set(key, value);} catch (Exception e) {log.error("set key:{} value:{} error", key, value, e);return null;} finally {close(jedis);}}/*** 設值** @param key* @param value* @param expireTime 過期時間, 單位: s* @return*/public String set(String key, String value, int expireTime) {Jedis jedis = null;try {jedis = getJedis();return jedis.setex(key, expireTime, value);} catch (Exception e) {log.error("set key:{} value:{} expireTime:{} error", key, value, expireTime, e);return null;} finally {close(jedis);}}/*** 取值** @param key* @return*/public String get(String key) {Jedis jedis = null;try {jedis = getJedis();return jedis.get(key);} catch (Exception e) {log.error("get key:{} error", key, e);return null;} finally {close(jedis);}}/*** 刪除key** @param key* @return*/public Long del(String key) {Jedis jedis = null;try {jedis = getJedis();return jedis.del(key.getBytes());} catch (Exception e) {log.error("del key:{} error", key, e);return null;} finally {close(jedis);}}/*** 判斷key是否存在** @param key* @return*/public Boolean exists(String key) {Jedis jedis = null;try {jedis = getJedis();return jedis.exists(key.getBytes());} catch (Exception e) {log.error("exists key:{} error", key, e);return null;} finally {close(jedis);}}/*** 設值key過期時間** @param key* @param expireTime 過期時間, 單位: s* @return*/public Long expire(String key, int expireTime) {Jedis jedis = null;try {jedis = getJedis();return jedis.expire(key.getBytes(), expireTime);} catch (Exception e) {log.error("expire key:{} error", key, e);return null;} finally {close(jedis);}}/*** 獲取剩余時間** @param key* @return*/public Long ttl(String key) {Jedis jedis = null;try {jedis = getJedis();return jedis.ttl(key);} catch (Exception e) {log.error("ttl key:{} error", key, e);return null;} finally {close(jedis);}}private void close(Jedis jedis) {if (null != jedis) {jedis.close();}} }

    3.自定義注解@ApiIdempotent

    package com.wangzaiplus.test.annotation;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/*** 在需要保證 接口冪等性 的Controller的方法上使用此注解*/ @Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) public @interface ApiIdempotent { }

    4.ApiIdempotentInterceptor攔截器

    package com.wangzaiplus.test.interceptor;import com.wangzaiplus.test.annotation.ApiIdempotent; import com.wangzaiplus.test.service.TokenService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.lang.reflect.Method;/*** 接口冪等性攔截器*/ public class ApiIdempotentInterceptor implements HandlerInterceptor {@Autowiredprivate TokenService tokenService;@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {if (!(handler instanceof HandlerMethod)) {return true;}HandlerMethod handlerMethod = (HandlerMethod) handler;Method method = handlerMethod.getMethod();ApiIdempotent methodAnnotation = method.getAnnotation(ApiIdempotent.class);if (methodAnnotation != null) {check(request);// 冪等性校驗, 校驗通過則放行, 校驗失敗則拋出異常, 并通過統一異常處理返回友好提示}return true;}private void check(HttpServletRequest request) {tokenService.checkToken(request);}@Overridepublic void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {}@Overridepublic void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {} }

    5.TokenServiceImpl

    package com.wangzaiplus.test.service.impl;import com.wangzaiplus.test.common.Constant; import com.wangzaiplus.test.common.ResponseCode; import com.wangzaiplus.test.common.ServerResponse; import com.wangzaiplus.test.exception.ServiceException; import com.wangzaiplus.test.service.TokenService; import com.wangzaiplus.test.util.JedisUtil; import com.wangzaiplus.test.util.RandomUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.text.StrBuilder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;import javax.servlet.http.HttpServletRequest;@Service public class TokenServiceImpl implements TokenService {private static final String TOKEN_NAME = "token";@Autowiredprivate JedisUtil jedisUtil;@Overridepublic ServerResponse createToken() {String str = RandomUtil.UUID32();StrBuilder token = new StrBuilder();token.append(Constant.Redis.TOKEN_PREFIX).append(str);jedisUtil.set(token.toString(), token.toString(), Constant.Redis.EXPIRE_TIME_MINUTE);return ServerResponse.success(token.toString());}@Overridepublic void checkToken(HttpServletRequest request) {String token = request.getHeader(TOKEN_NAME);if (StringUtils.isBlank(token)) {// header中不存在tokentoken = request.getParameter(TOKEN_NAME);if (StringUtils.isBlank(token)) {// parameter中也不存在tokenthrow new ServiceException(ResponseCode.ILLEGAL_ARGUMENT.getMsg());}}if (!jedisUtil.exists(token)) {throw new ServiceException(ResponseCode.REPETITIVE_OPERATION.getMsg());}Long del = jedisUtil.del(token);if (del <= 0) {throw new ServiceException(ResponseCode.REPETITIVE_OPERATION.getMsg());}}}

    6.TestApplication

    package com.wangzaiplus.test;import com.wangzaiplus.test.interceptor.ApiIdempotentInterceptor; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.filter.CorsFilter; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;@SpringBootApplication @MapperScan("com.wangzaiplus.test.mapper") public class TestApplication extends WebMvcConfigurerAdapter {public static void main(String[] args) {SpringApplication.run(TestApplication.class, args);}/*** 跨域* @return*/@Beanpublic CorsFilter corsFilter() {final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();final CorsConfiguration corsConfiguration = new CorsConfiguration();corsConfiguration.setAllowCredentials(true);corsConfiguration.addAllowedOrigin("*");corsConfiguration.addAllowedHeader("*");corsConfiguration.addAllowedMethod("*");urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);return new CorsFilter(urlBasedCorsConfigurationSource);}@Overridepublic void addInterceptors(InterceptorRegistry registry) {// 接口冪等性攔截器registry.addInterceptor(apiIdempotentInterceptor());super.addInterceptors(registry);}@Beanpublic ApiIdempotentInterceptor apiIdempotentInterceptor() {return new ApiIdempotentInterceptor();}}

    OK, 目前為止, 校驗代碼準備就緒, 接下來測試驗證。

    七、測試驗證

    1.獲取token的控制器TokenController

    package com.wangzaiplus.test.controller;import com.wangzaiplus.test.common.ServerResponse; import com.wangzaiplus.test.service.TokenService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;@RestController @RequestMapping("/token") public class TokenController {@Autowiredprivate TokenService tokenService;@GetMappingpublic ServerResponse token() {return tokenService.createToken();}}

    2.TestController, 注意@ApiIdempotent注解, 在需要冪等性校驗的方法上聲明此注解即可, 不需要校驗的無影響

    package com.wangzaiplus.test.controller;import com.wangzaiplus.test.annotation.ApiIdempotent; import com.wangzaiplus.test.common.ServerResponse; import com.wangzaiplus.test.service.TestService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;@RestController @RequestMapping("/test") @Slf4j public class TestController {@Autowiredprivate TestService testService;@ApiIdempotent@PostMapping("testIdempotence")public ServerResponse testIdempotence() {return testService.testIdempotence();} }

    3.獲取token

    查看redis

    4.測試接口安全性: 利用jmeter測試工具模擬50個并發請求, 將上一步獲取到的token作為參數

    5.header或參數均不傳token, 或者token值為空, 或者token值亂填, 均無法通過校驗, 如token值為"abcd"

    八、注意點(非常重要)

    上圖中, 不能單純的直接刪除token而不校驗是否刪除成功, 會出現并發安全性問題, 因為, 有可能多個線程同時走到第46行, 此時token還未被刪除, 所以繼續往下執行, 如果不校驗jedisUtil.del(token)的刪除結果而直接放行, 那么還是會出現重復提交問題, 即使實際上只有一次真正的刪除操作, 下面重現一下

    稍微修改一下代碼:

    再次請求

    再看看控制臺

    雖然只有一個真正刪除掉token, 但由于沒有對刪除結果進行校驗, 所以還是有并發問題, 因此, 必須校驗

    九、總結

    其實思路很簡單, 就是每次請求保證唯一性, 從而保證冪等性, 通過攔截器+注解, 就不用每次請求都寫重復代碼, 其實也可以利用spring aop實現, 無所謂。

    轉自:簡書 作者:wangzaiplushttps://www.jianshu.com/p/6189275403ed

    總結

    以上是生活随笔為你收集整理的@slf4j注解_SpringBoot + Redis + 注解 + 拦截器 实现接口幂等性校验的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    国内精品久久天天躁人人爽 | 色综合久久88色综合天天6 | 欧美日韩一级视频 | 国产高清免费观看 | 日日干网址 | 欧美一级性视频 | 精品99久久久久久 | 天天爽夜夜操 | 日韩电影在线看 | 安徽妇搡bbbb搡bbbb | 国产精品久久久久久久久久久久午夜 | 91污在线| 全久久久久久久久久久电影 | 色婷婷一 | 99久久99久久综合 | 字幕网资源站中文字幕 | 黄色一级大片在线观看 | 久久av观看 | 视频一区二区精品 | 亚洲精品视频在线观看免费视频 | 色狠狠狠 | 精品免费久久久久久 | 国产一区二区在线观看免费 | 一级精品视频在线观看宜春院 | 免费看一及片 | av在线播放观看 | 日日日日日 | 日韩精品欧美一区 | 国产成人精品不卡 | 91高清免费看 | 不卡电影一区二区三区 | 天天干天天操av | 久久久999| 亚洲黄色激情小说 | 久久成人国产精品一区二区 | 国产精品毛片一区 | 又黄又爽免费视频 | 天天插视频 | 国产精品自产拍在线观看蜜 | 99在线视频观看 | 国产在线黄 | 久久精品99国产国产精 | 亚洲四虎 | 精品成人a区在线观看 | 久久三级视频 | 亚洲精品玖玖玖av在线看 | 一色av| 中文字幕a∨在线乱码免费看 | 久热电影 | 色综合久久五月天 | 国产视频综合在线 | 一区二区三区不卡在线 | 久久超| 亚洲精品www久久久久久 | 精品资源在线 | 亚州天堂| 西西人体www444 | 国产亚洲精品精品精品 | 成人免费在线看片 | 日日干精品 | 中文字幕精 | 国语精品免费视频 | 中文字幕激情 | 天天激情综合网 | 精品无人国产偷自产在线 | 国产午夜三级一二三区 | 人人爽久久涩噜噜噜网站 | 美女视频一区二区 | 日韩精品欧美一区 | 91视频a| 亚洲欧洲精品视频 | 久久99久久99精品 | 亚洲婷婷综合色高清在线 | 免费看的av片 | 亚洲成人一区 | 亚洲区视频在线 | 欧美一级性 | 久久经典国产视频 | 99精品久久久久久久 | 97成人啪啪网 | 99精品系列 | 99热在线网站 | 免费看的黄色小视频 | 日日爽天天 | 欧美 日韩 久久 | 色婷婷狠狠五月综合天色拍 | 91成人精品一区在线播放 | 日本女人的性生活视频 | 亚洲h在线播放在线观看h | 天天做日日做天天爽视频免费 | 视频在线观看亚洲 | 人成免费网站 | av在线看片 | 日韩欧美高清在线观看 | 涩涩网站在线观看 | 中文字幕乱码在线播放 | 亚洲天堂精品视频 | 国产日韩欧美在线免费观看 | 91视视频在线直接观看在线看网页在线看 | 精品99在线| 精品亚洲欧美无人区乱码 | 日韩一区二区在线免费观看 | 天天天色 | 天天爱天天射 | 五月天婷婷在线观看视频 | 最近中文字幕视频完整版 | 国产香蕉97碰碰碰视频在线观看 | 香蕉视频最新网址 | 午夜色性片| 日本公妇在线观看高清 | 亚洲精品久久久久www | 五月天免费网站 | 国产91在线播放 | 精品亚洲免费 | 久久人人爽爽人人爽人人片av | 在线亚洲免费视频 | 欧美在线a视频 | 夜夜骑首页 | 激情综合网天天干 | 亚洲成人精品影院 | 天天操夜夜叫 | 九九久久久久久久久激情 | 国产精品18久久久 | 九九热只有这里有精品 | 少妇av网 | 超碰97国产精品人人cao | 亚洲无在线 | 免费精品在线观看 | 久久高清毛片 | 在线a人v观看视频 | 亚洲精品乱码久久久久久蜜桃91 | 99国产一区二区三精品乱码 | 国产片网站 | 国产一级久久久 | 亚洲欧美经典 | 日本中文字幕观看 | 在线只有精品 | 波多野结衣电影一区二区三区 | 天天射天天干 | 一级黄色片在线免费观看 | 黄色软件在线看 | 黄色美女免费网站 | 在线观看不卡视频 | 天天操天天干天天操天天干 | www.色爱 | 天天干天天草天天爽 | 2023年中文无字幕文字 | 69视频永久免费观看 | av网站在线观看免费 | 黄色毛片视频免费观看中文 | 日b黄色片 | aa一级片 | 国产一级免费在线 | 久久激情网站 | 在线免费看黄网站 | 久久久久久毛片精品免费不卡 | 国产精品久久久久久久久岛 | 色综合久久久久久中文网 | 超碰在线cao | 国产高清视频在线免费观看 | 在线免费观看欧美日韩 | 国产一级视频免费看 | 国产精品毛片一区二区 | 五月婷婷在线综合 | 亚洲深爱激情 | 久久r精品 | 狠狠狠色丁香婷婷综合久久五月 | 成人国产精品入口 | 国产精品99免费看 | 综合激情婷婷 | 日韩午夜电影院 | 国产999精品久久久久久绿帽 | 亚洲免费国产 | 深夜免费福利网站 | 日韩在线不卡视频 | 国产亚洲精品成人 | 国产成人精品一区二区在线观看 | 伊人精品影院 | 日韩理论视频 | 国产手机在线播放 | 亚洲精品视频 | 国产中文自拍 | 97超碰人人模人人人爽人人爱 | 亚洲狠狠干 | 亚洲 av网站 | 国产日韩欧美在线观看 | 国产精品久久久久久久久久99 | 亚洲精品国产精品久久99 | 国产色拍拍拍拍在线精品 | 在线观看av中文字幕 | 国产视频99| 久久精品国产成人精品 | 午夜三级影院 | 国产高清不卡av | 亚洲影视九九影院在线观看 | 天天摸天天操天天舔 | 亚洲天堂视频在线 | 亚洲va欧美 | 九九欧美 | 午夜体验区 | 99精品热 | 欧美日韩一级视频 | 少妇高潮冒白浆 | 狠狠色丁香久久综合网 | 在线视频成人 | 亚洲人久久久 | 91喷水 | 久久婷婷久久 | 97在线影院| 国产区久久| 亚洲精品乱码久久久久久高潮 | 免费在线视频一区二区 | 伊人激情综合 | 久久久蜜桃一区二区 | 人人澡人人干 | 蜜臀av一区二区 | 午夜精品电影 | 日韩中文字幕免费电影 | 日韩免费成人 | 亚洲成人一二三 | 久热精品国产 | 亚洲成 人精品 | 91香蕉视频在线下载 | 99精品视频在线 | 婷婷色在线资源 | 欧美精品久久99 | 性色av一区二区三区在线观看 | 91.麻豆视频 | av中文字幕在线观看网站 | 中文字幕在线视频一区 | 69欧美视频 | av片在线观看免费 | 天天性天天草 | 三级视频日韩 | 久久www免费视频 | 911久久香蕉国产线看观看 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 蜜桃视频在线观看一区 | 激情狠狠干 | 午夜久久视频 | 深爱激情综合网 | 手机av永久免费 | 安徽妇搡bbbb搡bbbb | 69国产盗摄一区二区三区五区 | 91亚洲精品在线观看 | 黄污污网站 | 国产欧美日韩一区 | 久久精品国产一区二区电影 | 国产精品自在线 | 免费在线电影网址大全 | 97理论片 | 成人av.com| 日韩在线观看视频中文字幕 | 欧美十八| 国产99久久99热这里精品5 | 中文有码在线 | 欧美性色黄 | 亚洲视频 在线观看 | 天天插综合网 | 亚洲精品中文字幕视频 | 伊人久久av | 日韩电影黄色 | 中文字幕一区二区三区精华液 | 久久理论影院 | 精品免费国产一区二区三区四区 | 国产黄色片久久 | 亚州精品在线视频 | 久久6精品 | 国产人成在线观看 | 日韩免费电影 | 99在线观看精品 | 97av精品 | 国产福利91精品一区二区三区 | av九九| 久久久久黄 | 免费国产在线视频 | 国产精品一区二区免费 | av三级在线播放 | 亚洲人人射| 国产又粗又猛又爽又黄的视频先 | 国产精品成人久久久久久久 | sesese图片 | 久草精品在线播放 | 夜夜躁狠狠燥 | 毛片888| 91精品夜夜 | 国内三级在线观看 | 亚洲天堂香蕉 | 久草在线电影网 | 91视频观看免费 | 久久免费久久 | 九色视频网址 | 一区二区视频免费在线观看 | 免费黄色在线播放 | 亚洲91中文字幕无线码三区 | 性色在线视频 | 91插插插免费视频 | 免费在线成人av电影 | 欧美激情h| 久久久久久久免费观看 | 天天爽天天搞 | 在线观看av麻豆 | 亚洲乱码国产乱码精品天美传媒 | 久久精品国产成人精品 | 日日日日干| 国产精品久久久久久久久久久久午夜 | 久久精品官网 | 国产成人精品999在线观看 | 国产在线看一区 | 亚洲一区欧美激情 | 天天干干 | 天天草天天爽 | 国产不卡在线播放 | 最近的中文字幕大全免费版 | 亚洲国产精品500在线观看 | 中文字幕在线观看免费高清完整版 | 国产一区二区三区四区大秀 | 日韩伦理片一区二区三区 | 免费影视大全推荐 | 久久成人国产精品入口 | 在线一区电影 | 国产日本在线 | 最近中文字幕视频完整版 | 中文字幕在线日 | 国产高清视频在线播放 | 伊人超碰在线 | 久久久亚洲麻豆日韩精品一区三区 | 一区二区三区视频在线 | 天海冀一区二区三区 | 欧美日韩在线免费视频 | 91精品黄色 | 亚洲热久久| 国产亚洲激情视频在线 | 久久九九影视网 | 最近中文字幕免费视频 | 91电影福利 | 亚洲在线 | 色资源网免费观看视频 | 欧洲成人av | www.com.日本一级 | 又爽又黄又刺激的视频 | 免费看黄的 | 中文字字幕在线 | 久久久国产精品人人片99精片欧美一 | 色全色在线资源网 | 日韩中文字幕网站 | 久久99久久精品 | 五月天综合激情 | 国产一区二区三区久久久 | 九九视频免费观看视频精品 | 正在播放亚洲精品 | 黄色三级av | 日韩女同一区二区三区在线观看 | 免费在线观看中文字幕 | 国产视频在线看 | 玖玖爱国产在线 | 欧美成人性战久久 | 97视频免费看 | 天天拍天天操 | 97狠狠干| 国产精品国产三级在线专区 | 国产一区二区日本 | 国产69久久久 | 久久免费视频在线 | 久久精品香蕉 | 日韩欧美中文 | 亚洲精品欧洲精品 | 欧美日韩一区二区在线观看 | 国内揄拍国产精品 | 国产999视频 | 亚洲一区二区三区在线看 | 日本久久久久久久久久 | 日韩综合视频在线观看 | 亚洲永久精品国产 | 国产99久久 | 色偷偷人人澡久久超碰69 | 草久视频在线观看 | 色综合久久久久久久久五月 | 观看免费av | 欧美精品小视频 | 国产精品成人在线 | 久久综合网色—综合色88 | 成人99免费视频 | 精品视频在线看 | 99精品免费久久久久久久久 | 91传媒91久久久 | 国产女v资源在线观看 | 7777精品伊人久久久大香线蕉 | 91亚洲视频在线观看 | 亚洲综合情 | 99爱视频 | 午夜在线看片 | 在线精品视频免费观看 | 久久99亚洲网美利坚合众国 | 亚洲精品在线观看不卡 | 亚洲一区精品二人人爽久久 | 国产香蕉97碰碰久久人人 | 丁香视频 | 日韩综合一区二区三区 | 在线99视频 | 中国成人一区 | 免费观看成年人视频 | 丁香花在线观看免费完整版视频 | 国产91电影在线观看 | 亚洲激情视频在线观看 | 国产黄色播放 | 97av在线视频免费播放 | 超碰在线1 | 91精品久久久久久久久久久久久 | 在线观看av免费 | 成人黄色大片网站 | 亚洲电影久久久 | 国产精品一区二区三区电影 | 婷婷香蕉 | 狠狠狠狠狠色综合 | 伊色综合久久之综合久久 | 成人国产精品一区 | 国产成人精品av | 国产亚洲精品福利 | 日本视频高清 | 天天干天天操天天入 | 亚洲三级视频 | 色婷婷狠狠18 | 久久,天天综合 | 欧美性爽爽 | 最新日韩在线观看视频 | 国内精品久久久久久中文字幕 | 午夜精品久久久久久久久久久 | 狠狠五月天| 免费亚洲视频在线观看 | 日韩午夜电影网 | 天天色天天色天天色 | 免费黄色在线 | www·22com天天操 | 精品亚洲成人 | 成人精品一区二区三区电影免费 | 精品久久在线 | 91福利社在线观看 | 6080yy精品一区二区三区 | 9在线观看免费 | 天天操狠狠操夜夜操 | 在线观看中文字幕一区二区 | 全久久久久久久久久久电影 | 欧美日本在线观看视频 | 日韩欧美精品一区二区 | 在线国产视频一区 | 欧美va在线观看 | 欧美激情精品久久久久久免费 | 国产五十路毛片 | 人人澡视频 | 手机av在线网站 | 国产69精品久久app免费版 | 人人爽人人av | 人人干人人搞 | a成人v在线 | 免费视频91| 国产精品视频 | 在线视频观看91 | 91网免费看 | 欧美日韩高清一区二区三区 | 亚洲日本精品视频 | 国产黄色一级片 | 黄色avwww| 日批在线看 | 婷婷中文在线 | 日韩在线电影一区 | 久久精品国产一区二区三区 | 亚洲综合色激情五月 | 97国产在线视频 | 狠狠艹夜夜干 | 久久成年人网站 | 91在线小视频 | 色婷婷色| 999ZYZ玖玖资源站永久 | 日韩视频一区二区在线 | 99精品久久只有精品 | 77国产精品| 日韩免费在线观看网站 | 超碰夜夜 | 五月激情五月激情 | 国产乱对白刺激视频不卡 | 欧美另类一二三四区 | 91亚洲精品久久久久图片蜜桃 | 日韩免费观看高清 | 一区二区欧美激情 | 五月婷婷丁香 | 亚洲黄色片在线 | 99久精品 | 一区 二区 精品 | 91av视频免费在线观看 | 欧美精品小视频 | 天天色欧美 | 亚洲精品88欧美一区二区 | 中中文字幕av在线 | 97超碰总站 | 欧美一级日韩三级 | 99久久综合国产精品二区 | 小草av在线播放 | 国产亚洲精品日韩在线tv黄 | 国产又粗又猛又黄 | 精品国产免费看 | 最新国产精品亚洲 | 成人中文字幕+乱码+中文字幕 | 国产精品福利在线 | 制服丝袜在线91 | 精品国产成人在线 | 99精品在线免费观看 | 久久综合中文色婷婷 | 麻豆国产视频下载 | www.久久久精品 | 中文在线免费观看 | www毛片com| 91精选 | 日韩在线大片 | 波多野结衣在线观看一区二区三区 | 国产网红在线观看 | 中文字幕日本在线 | 9i看片成人免费看片 | 久久成人精品电影 | 综合亚洲视频 | 欧美日韩在线精品一区二区 | 超碰在线94 | 国产精品av在线免费观看 | 啪啪av在线| 日韩视频在线观看视频 | 中文区中文字幕免费看 | 国产一级特黄毛片在线毛片 | 色国产精品一区在线观看 | 日韩精品不卡在线 | 91看片在线播放 | 国产精品久久久久久久久久尿 | 久久激情小说 | 欧美成人一区二区 | 国产涩涩在线观看 | 超碰97久久| 免费看网站在线 | 99久久99精品 | 久久手机视频 | 亚洲视频aaa | 国产小视频在线免费观看 | 涩五月婷婷 | 久久久精品视频成人 | 97色在线视频 | 国产视频精选 | 99国产精品久久久久老师 | 丁香综合| 久久高清免费观看 | 日韩电影在线一区 | 91porny九色91啦中文 | 国产小视频你懂的在线 | 国产一区二区在线免费播放 | 久久亚洲欧美日韩精品专区 | 91热| 日韩欧美99 | 四虎最新入口 | 热99在线 | 97福利在线 | 嫩草伊人久久精品少妇av | 久久人人爽人人片 | 国产精品久久久久久久久久久杏吧 | 国产精品福利无圣光在线一区 | 亚洲午夜久久久久久久久久久 | 日韩r级在线 | 久久尤物电影视频在线观看 | 超碰免费公开 | 久久精品久久久久久久 | 国产一区二区三区免费在线 | 操操操日日日 | a在线视频v视频 | 91 在线视频播放 | 日韩精品久久久久久久电影99爱 | 午夜影院先 | 不卡的av在线 | 免费在线观看av网站 | 国产美女精品视频免费观看 | 国产精品99久久久精品免费观看 | 亚洲不卡av一区二区三区 | 午夜精品一区二区三区在线观看 | 91免费观看视频在线 | 日本中文一级片 | 精品免费观看 | 欧美一级艳片视频免费观看 | 久操免费视频 | 蜜桃av久久久亚洲精品 | 最近中文字幕高清字幕在线视频 | 六月丁香激情网 | 欧美色图狠狠干 | 中文av在线播放 | 色综合天天射 | 日日插日日干 | 久久久精品高清 | 三级av免费看 | 国产亚洲aⅴaaaaaa毛片 | 国产高清一级 | 91视频免费视频 | 美女精品网站 | 中文字幕欧美日韩va免费视频 | a级免费观看 | 国内精品美女在线观看 | 国产精品一区二区在线观看免费 | 国产精品一区二区三区在线 | av资源在线观看 | 日韩免费在线观看 | 中文av在线免费观看 | 丁香色综合 | 日韩专区 在线 | 91精品日韩 | 成人黄色在线电影 | 久久综合偷偷噜噜噜色 | 国产在线自 | 久热色超碰 | av中文字幕免费在线观看 | 成人中心免费视频 | 国产精品欧美久久久久三级 | 亚洲精品激情 | 黄色av免费在线 | 日韩亚洲国产中文字幕 | 操操操com | 久久精品看片 | 国产免费不卡av | 日韩久久久久久久 | 免费在线观看成年人视频 | 久久看免费视频 | 亚洲春色奇米影视 | 婷婷av电影 | 久久国内视频 | 人人爽人人射 | 91精品久久久久久综合乱菊 | 五月婷婷综合在线 | 国产一区二区免费在线观看 | 久久婷婷影视 | 精品国产免费人成在线观看 | 国产中文伊人 | 国产一区视频免费在线观看 | 天天综合网 天天 | 麻豆一二三精选视频 | 国产精品成人一区二区 | 欧美日韩视频在线 | 婷婷色综合 | 麻豆免费观看视频 | 免费亚洲一区二区 | 国产剧情在线一区 | 91av视频在线免费观看 | 国内精品久久久久影院日本资源 | 欧美视频xxx | 黄色av电影在线观看 | 欧美日韩免费一区二区 | 国产黄色免费在线观看 | 9在线观看免费高清完整版 玖玖爱免费视频 | 国产69精品久久久久9999apgf | 日本中出在线观看 | 中文字幕日韩国产 | 色资源二区在线视频 | 最新日韩视频 | av三区在线 | 超碰97网站 | 97视频免费在线观看 | 一区二区三区日韩视频在线观看 | 国产黄色片免费在线观看 | 欧美精品国产综合久久 | 久青草电影 | 久久99久久99久久 | 91最新视频在线观看 | 免费一级特黄毛大片 | 亚洲 综合 国产 精品 | 精品视频免费播放 | 草久在线播放 | 午夜av一区二区三区 | 一区二区三区www | 国产三级视频在线 | 九月婷婷综合网 | 天天射夜夜爽 | 欧美精品v国产精品v日韩精品 | 韩国一区二区三区视频 | 欧美成人区 | 国产精品国产三级国产不产一地 | 在线观看片| 久久五月情影视 | 午夜精品导航 | 99久久精品国产一区 | av在线观| 精品亚洲视频在线 | 久久久久国产免费免费 | 国产无套精品久久久久久 | 91最新在线视频 | 手机av网站| 这里只有精品视频在线 | 久久综合九色综合欧美狠狠 | 五月婷婷一区 | 一区在线电影 | 毛片基地黄久久久久久天堂 | 日韩系列在线观看 | 天天天天综合 | 国产日韩精品在线观看 | 欧美 日韩 国产 成人 在线 | 欧美精品一区二区蜜臀亚洲 | 亚洲精品国产区 | 亚洲精品美女在线观看 | 成人免费在线观看av | 精品福利国产 | 中文av在线免费观看 | 97精品国自产拍在线观看 | 手机看片国产 | 久久久精品国产免费观看一区二区 | 国产一区二区电影在线观看 | 99热精品免费观看 | 国产午夜精品理论片在线 | 00av视频 | 欧美一区免费在线观看 | 欧美激情精品一区 | 九色精品在线 | 国产精品乱码高清在线看 | 超碰在97 | 久久久久久久久久久久久久av | 黄色动态图xx | 国产精品99久久久久久大便 | 亚洲一区二区三区四区在线视频 | 六月丁香在线观看 | 欧美精品三级 | 五月天婷婷视频 | 91成人区| 99热精品国产一区二区在线观看 | 免费在线91| 国产999免费视频 | 国产亚洲成av人片在线观看桃 | 久久一本综合 | 99久久婷婷国产综合精品 | 亚洲欧洲精品一区 | 福利片视频区 | 亚洲乱码久久 | 亚洲九九爱 | 亚洲第一中文网 | 日韩中文字幕在线看 | 五月天六月丁香 | 网站在线观看你们懂的 | 最近中文字幕国语免费av | 欧美一区二区三区在线看 | 激情av综合| 国产成人一区在线 | 国产护士在线 | 91片网| 91精品人成在线观看 | 在线看国产日韩 | 精品亚洲视频在线 | 国产一二区视频 | 91九色老| 三级av免费观看 | 久久精品久久99精品久久 | 精品女同一区二区三区在线观看 | 久久久久久国产精品久久 | 色成人亚洲 | 亚洲精品999 | 色综合久久88色综合天天 | 碰超在线观看 | 91精品国产99久久久久 | 丁香花在线观看视频在线 | 成 人 黄 色视频免费播放 | 国产白浆视频 | 99精品在线免费观看 | 色com | 欧美午夜性 | 中文免费在线观看 | 黄色1级大片 | 狠狠地操 | 日本精品一区二区 | 国产精品久久久久aaaa九色 | 欧美一级片在线观看视频 | 免费能看的黄色片 | 国产成人一区二区三区电影 | 日韩在线视频播放 | 欧美人人 | 在线黄频 | 91精品视频观看 | 人人爽人人澡 | 97超碰在线人人 | 激情电影影院 | 精品国产一区二区三区男人吃奶 | 天天拍天天爽 | 欧美另类sm图片 | 免费看国产视频 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 国产午夜精品一区二区三区四区 | 麻豆精品在线视频 | 欧美日韩精| 91av成人 | 亚洲精品短视频 | 成人18视频| 国产美女精品人人做人人爽 | 欧洲一区二区在线观看 | 日本黄色大片儿 | 香蕉久草| 在线观看你懂的网址 | 午夜电影 电影 | 欧美性大战 | 国产视频亚洲 | 日免费视频 | 日产乱码一二三区别在线 | 日本高清免费中文字幕 | 日韩在线一区二区免费 | 男女激情网址 | 2018好看的中文在线观看 | 精品一区二区三区久久 | 日韩高清www | 久久99亚洲网美利坚合众国 | 亚州精品一二三区 | 久久免费视频观看 | 在线免费观看一区二区三区 | 一级一片免费观看 | 精品一区电影国产 | 久久国内视频 | 特黄特色特刺激视频免费播放 | 日韩极品视频在线观看 | 亚洲精品国产精品国自产观看 | 国产精品ssss在线亚洲 | 久久精品3 | 91精品国产自产在线观看永久 | 日韩在线首页 | 国产精品九九九九九 | 人人爽人人做 | 国产精品一区二区三区在线播放 | 久久伊人五月天 | 日韩成人高清在线 | 激情五月伊人 | 午夜视频在线网站 | 青青草华人在线视频 | 粉嫩av一区二区三区入口 | 欧美在线视频一区二区 | 国产精品欧美久久久久无广告 | 四虎成人精品永久免费av | 日本精品视频免费 | 超碰97.com| 狠狠色狠狠色合久久伊人 | 成片免费观看视频 | 日韩欧美大片免费观看 | 啪啪精品 | www.91成人| www好男人| 色综合久久久久久中文网 | 五月综合 | 麻豆视频网址 | 亚洲一区二区天堂 | 国产精品欧美久久久久天天影视 | 国产在线观看xxx | 色综合婷婷| 久草新在线 | 日批视频国产 | 成人欧美一区二区三区在线观看 | 黄色av免费电影 | 日韩在线三级 | 一区二区三区国产精品 | 国产专区精品视频 | 日韩黄色大片在线观看 | 99亚洲精品视频 | 91热视频在线观看 | 高清av免费看 | 五月婷婷丁香六月 | 毛片网站在线观看 | 免费看国产精品 | 成人久久久久久久久 | 国产精品久久久久久久久久妇女 | 色综合天天爱 | 国产精品一区二区三区在线免费观看 | 午夜少妇av | 亚洲精品综合一区二区 | 亚洲精品美女久久17c | 久久国产精品系列 | 在线免费观看欧美日韩 | 99精品国产99久久久久久福利 | 99免费在线视频观看 | 国产精品一区二区av | 色5月婷婷| 最近高清中文字幕 | 久久精品免费电影 | 日韩网站免费观看 | 麻豆va一区二区三区久久浪 | 超碰人人乐 | 国产福利资源 | 天天操天天能 | 探花视频在线版播放免费观看 | 97视频总站 | 婷婷日| 激情网五月天 | 爱爱av网站| 久久99视频免费观看 | 在线看片一区 | 视频在线观看国产 | www.888av| 成人国产精品一区二区 | 91精品久久久久久久91蜜桃 | 色综合天天综合在线视频 | 亚洲永久精品视频 | 欧美日韩精品在线观看 | 国产综合视频在线观看 | 中文字幕在线看视频 | 亚洲精品在线国产 | 伊人五月天综合 | 国产成人一区二区三区免费看 | 亚洲做受高潮欧美裸体 | 日韩成人免费电影 | 91毛片在线 | 日韩动漫免费观看高清完整版在线观看 | 国内精品久久久久久 | 97福利社| 狠狠色丁香婷婷综合久小说久 | 亚洲成人免费 | 一二区精品 | 欧美午夜性 | 97久久精品午夜一区二区 | 日日草av | 97av影院| 欧美精品v国产精品v日韩精品 | 五月婷婷av在线 | 在线播放视频一区 | 一区二区 精品 | 日韩国产精品一区 | 欧美日本中文字幕 | 99久久影院 | 国产一区在线观看免费 | 欧美成人999| 精品国产_亚洲人成在线 | 欧美热久久 | 久草成人在线 | 中文字幕a∨在线乱码免费看 | 欧美日韩三级在线观看 | 亚洲精品99久久久久中文字幕 | 久久久91精品国产 | 黄色在线视频网址 | 91香蕉视频720p | 四虎伊人 | 国产精品久久久久一区 | 亚洲美女在线国产 | 免费av在线网 | 日韩毛片在线播放 | 成 人 黄 色 视频播放1 | 中文字幕日韩精品有码视频 | 天天天在线综合网 | 天天干,天天射,天天操,天天摸 | 精品国产乱码 | 伊人干综合 | 久久久久久久久久久久国产精品 | 精品一二 | 911精品视频 | 亚洲自拍自偷 | a成人v在线 | 国产精品永久久久久久久www | 九九久久久久99精品 | 四虎成人精品在永久免费 | 久草在线最新免费 | 国产精品专区在线 | 久久免费精彩视频 | 中中文字幕av在线 | 色多多在线观看 | 免费看的黄网站 | 国产精品久久久久久久久久99 | 国产成人免费高清 | 一区二区精品 | av不卡免费在线观看 | 视频91| 天天天天色射综合 | 在线观看亚洲精品 | 婷婷中文字幕综合 | 色综合小说 | 欧美日韩国产精品一区二区 | 国产黄免费在线观看 | 区一区二在线 | 国产伦精品一区二区三区在线 | 九九九免费视频 | 91av大全 | 日韩超碰在线 | 91av亚洲| 天堂av在线免费观看 | 免费裸体视频网 | 国产亚洲情侣一区二区无 | 最近久乱中文字幕 | 国产精品12 | 久久精品区 | 欧美专区国产专区 | 国产日韩视频在线 | 日韩精品久久久 | 国产在线一区观看 | 亚洲国产中文字幕在线观看 | 欧美另类调教 | 久久男人免费视频 | 久久成人视屏 | 91av看片 | 成人av高清在线观看 | 天天干 夜夜操 | 国产高清在线不卡 | 亚洲精品免费观看视频 | 精品久久久久久久久久久久久久久久久久 | 欧美专区日韩专区 | 在线免费高清一区二区三区 | 91视频免费 | 亚洲日韩欧美一区二区在线 | 免费视频资源 | 亚洲精品国产精品国自产观看浪潮 | 波多野结衣小视频 | 久久精品国产v日韩v亚洲 |