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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【SSM】Kisso实用教程(二)

發布時間:2025/3/19 编程问答 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【SSM】Kisso实用教程(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

https://www.jianshu.com/p/4026edd340bb

Maven依賴項

/pom.xml

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus</artifactId><version>1.2.12</version> </dependency> <dependency><groupId>com.baomidou</groupId><artifactId>kisso</artifactId><version>3.6.6</version> </dependency> <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.9</version> </dependency> <dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>1.54</version> </dependency>

Spring MVC設置

/resource/spring-mvc.xml

<!-- kisso 注入初始化,也支持使用 web.xml 初始化 --> <bean id="kissoInit" class="com.baomidou.kisso.web.WebKissoConfigurer" init-method="initKisso"><property name="ssoPropPath" value="sso.properties" /><!-- 測試模式 ,不同環境配置選擇設置 --><property name="runMode" value="test_mode" /><!-- 此處可以注入 SSOConfig 配置屬性,也可以定義自己的 kisso 插件,基礎 SSOPlugin 抽象類。<property name="pluginList"><list><bean name="com.xxxx.MyPlugin"></list></property>--></bean><mvc:interceptors><!-- SSO 攔截器 --><!-- path 對所有的請求攔截使用/**,對某個模塊下的請求攔截使用:/myPath/* --><mvc:interceptor><mvc:mapping path="/user/*" /><mvc:mapping path="/permission/*" /><bean class="com.baomidou.kisso.web.interceptor.SSOSpringInterceptor" /></mvc:interceptor> </mvc:interceptors>

Kisso設置

/resource/sso.properties

################ SSOConfig file ################# sso.encoding=utf-8 sso.secretkey=30eb4892122c45fd0f sso.cookie.name=uid sso.cookie.domain=.vcap.me sso.login.url=http://ssm.vcap.me:8080/ssm/user/tologin

或者

################ SSOConfig file ################# sso.encoding=utf-8 sso.secretkey=30eb4892122c45fd0f sso.cookie.name=uid sso.cookie.domain=127.0.0.1 sso.login.url=http://127.0.0.1:8080/ssm/user/tologin

domain不能為localhost,可修改hosts使用自定義域名。

User映射設置

/mapper/userMapper.xml

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mapper.UserMapper"><!-- 解決表名與字段不匹配 --><resultMap type="User" id="userResultMap"><result property="userid" column="userid" /><result property="username" column="username" /><result property="password" column="password" /></resultMap><!-- 查詢用戶是否存在 --><select id="checkUserByUsername" resultType="int" parameterType="java.lang.String">select count(1) from user WHERE username=#{username}</select><!-- 添加用戶 --><insert id="addUser" parameterType="User">insert into user(username,password) values(#{username}, #{password})</insert><!-- 獲取用戶信息 --><select id="getUserInfoByName" resultType="User" parameterType="User">select * from user WHERE username=#{username}</select><!-- 查詢所有用戶--><select id="findAllUser" resultType="User">select * from user</select> </mapper>

登錄時,根據username,獲取User類。

加鹽密碼=MD5(用戶名+原密碼)

User映射接口

/mapper/UserMapper.java

public interface UserMapper {/*** 添加用戶* @param user 用戶* @return 修改的行數*/int addUser(User user);/*** 查詢用戶是否存在* @param username 用戶名* @return */int checkUserByUsername(String username);/*** 根據用戶名返回用戶信息* @param user 用戶名* @return 用戶信息*/List<User> getUserInfoByName(User user);/*** 查詢所有用戶的信息* @return 用戶信息的表*/List<User> findAllUser(); }

Java Bean

/model/User.java

帶有mybatis-plus.jar提供的注解,用于導出SQL語句。

import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; public class User {@TableField(exist = false)private static final long serialVersionUID = 1L;/** 主鍵ID */@TableIdprivate Long userid;private String username;private String password;;public User() {super();}public Long getId() {return userid;}public void setId(Long id) {this.userid = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}

User服務接口

/service/UserService.java

注意:Controller中帶有Autowired注解的字段必須為接口。

public interface UserService {/*** 添加用戶* @param user 用戶* @return 修改的行數*/int addUser(User user);/*** 查詢用戶是否存在* @param username 用戶名* @return */boolean checkUserByUsername(String username);/*** 檢查用戶名和密碼是否合法* @param user 登錄信息* @return 成功則返回id,失敗返回-1*/long validUserAndPassword(User user);/*** 查詢所有用戶的信息* @return 用戶信息的表*/List<User> findAllUser();

User服務實現

/service/impl/UserServiceImpl.java

@Service @Transactional public class UserServiceImpl implements UserService {@Resourcepublic UserMapper userMapper;@Overridepublic int addUser(User user) {int userid = userMapper.addUser(user);return userid;}@Overridepublic boolean checkUserByUsername(String username) {return userMapper.checkUserByUsername(username) == 1;}@Overridepublic long validUserAndPassword(User user) {List<User> users = userMapper.getUserInfoByName(user);if (users.isEmpty()) {return -1;// 不存在}User info = users.get(0);if (SaltEncoder.md5SaltValid(user.getUsername(), info.getPassword(), user.getPassword())) {return info.getId();} else {return -1;// 不存在}}@Overridepublic List<User> findAllUser() {return userMapper.findAllUser();} }

用戶注冊

/controller/UserController.java

@Login(action = Action.Skip) @RequestMapping(value = "/reg", method = RequestMethod.POST) public @ResponseBody Map<String, Object> addUser(@RequestParam(value = "username") String username,@RequestParam(value = "password") String password) {Map<String, Object> map = new HashMap<String, Object>();if (userService.checkUserByUsername(username)) {User user = new User();user.setUsername(username);user.setPassword(SaltEncoder.md5SaltEncode(username, password));int id = userService.addUser(user);logger.debug(String.format("add user: id=%d name=%s", id, username));map.put("code", "200");map.put("msg", "注冊成功!");} else {logger.warn(String.format("conflict user: name=%s", username));map.put("code", "400");map.put("msg", "用戶已存在!");}return map;}

SaltEncoder.md5SaltEncode(登錄名,原密碼)=> 返回哈希密碼

用戶登錄

/controller/UserController.java

@Login(action = Action.Skip) @RequestMapping(value = "/login", method = RequestMethod.POST) public @ResponseBody Map<String, Object> login(@RequestParam(value = "username") String username,@RequestParam(value = "password") String password,@RequestParam(value = "verify") String verify) {Map<String, Object> map = new HashMap<String, Object>();String verifyCode = String.valueOf(request.getSession().getAttribute("verify"));if (!verifyCode.equalsIgnoreCase(verify)) {map.put("code", "400");map.put("msg", "驗證碼錯誤");return map;}request.getSession().removeAttribute("verify");/*** 生產環境需要過濾sql注入*/WafRequestWrapper req = new WafRequestWrapper(request);String username_ = req.getParameter("username");String password_ = req.getParameter("password");User user = new User();user.setUsername(username_);user.setPassword(password_);long userid = userService.validUserAndPassword(user);if (userid != -1) {logger.debug(String.format("login success: name=%s password=%s", username_, password_));map.put("code", "200");map.put("msg", "登錄成功!");/** authSSOCookie 設置 cookie 同時改變 jsessionId*/SSOToken st = new SSOToken(request);st.setId(userid);st.setUid(username_);st.setType(1);// 記住密碼,設置 cookie 時長 1 天 = 86400 秒 【動態設置 maxAge 實現記住密碼功能】/** String rememberMe = req.getParameter("rememberMe"); if* ("on".equals(rememberMe)) {* request.setAttribute(SSOConfig.SSO_COOKIE_MAXAGE, 86400); }*/request.setAttribute(SSOConfig.SSO_COOKIE_MAXAGE, -1);//瀏覽器關閉自動刪除cookieSSOHelper.setSSOCookie(request, response, st, true);} else {logger.warn(String.format("wrong login: name=%s password=%s", username_, password_));map.put("code", "400");map.put("msg", "您輸入的帳號或密碼有誤");}return map;}

登錄的邏輯:

  • @RequestParam,規范參數格式
  • 判斷驗證碼,從Session中取
  • 用WafRequestWrapper過濾SQL注入
  • 將用戶名和密碼放入Java Bean,即User中
  • 調用UserService的驗證機制
  • 查看結果
  • 如果驗證失敗,則返回失敗
  • 如果成功,則新建SSOToken,放入userid和username
  • 用SSOHelper.setSSOCookie(request, response, st, true)完成SSO注冊
  • 最后,用戶的Cookie中,有一項uid是加密的,保存了用戶的userid和username
  • 注意點:

    • 為什么是uid? sso.properties中的sso.cookie.name項

    • 怎么加密?密鑰在sso.properties中的sso.secretkey

    驗證機制

    控制器

    /controller/UserController.java

    /*** 驗證碼 (注解跳過權限驗證)*/ @Login(action = Action.Skip) @ResponseBody @RequestMapping("/verify") public void verify() {try {String verifyCode = CaptchaUtil.outputImage(response.getOutputStream());request.getSession().setAttribute("verify", verifyCode);//把驗證碼存入sessionlogger.debug(String.format("verify code: %s", verifyCode));} catch (IOException e) {e.printStackTrace();} }

    注意點:

    • 地址是 #{controller}/verify,設為Action.Skip,因為任何人都可以獲取驗證碼,不寫則默認為Action.Normal啟用認證。
    • 將驗證碼的明文存入Session中,待驗證登錄時取出。

    繪圖

    /com/utils/CaptchaUtil.java

    public class CaptchaUtil {public static String outputImage(OutputStream out) throws IOException {ConfigurableCaptchaService cs = new ConfigurableCaptchaService();//驗證碼寬高cs.setWidth(85);cs.setHeight(35);//設置 6 位自適應驗證碼// AdaptiveRandomWordFactory arw = new AdaptiveRandomWordFactory();// arw.setMinLength(6);// arw.setMaxLength(6);// cs.setWordFactory(arw);//字符大小設置RandomFontFactory rf = new RandomFontFactory();rf.setMinSize(25);rf.setMaxSize(28);cs.setFontFactory(rf);//文本渲染// cs.setTextRenderer(new RandomYBestFitTextRenderer());//設置一個單一顏色字體cs.setColorFactory(new SingleColorFactory(new Color(59, 162, 9)));// cs.setFilterFactory(new CurvesRippleFilterFactory(cs.getColorFactory()));//圖片濾鏡設置ConfigurableFilterFactory filterFactory = new ConfigurableFilterFactory();List<BufferedImageOp> filters = new ArrayList<BufferedImageOp>();//擺動干擾WobbleImageOp wio = new WobbleImageOp();wio.setEdgeMode(AbstractImageOp.EDGE_CLAMP);wio.setxAmplitude(2.0);wio.setyAmplitude(1.0);filters.add(wio);//曲線干擾// CurvesImageOp cio = new CurvesImageOp();// cio.setColorFactory(new SingleColorFactory(new Color(59, 162, 9)));// cio.setEdgeMode(AbstractImageOp.EDGE_ZERO);// cio.setStrokeMax(0.3f);// cio.setStrokeMin(0.1f);// filters.add(cio);filterFactory.setFilters(filters);cs.setFilterFactory(filterFactory);//橢圓形干擾背景// cs.setBackgroundFactory(new OvalNoiseBackgroundFactory(7));//線形干擾背景cs.setBackgroundFactory(new LineNoiseBackgroundFactory(37));//輸出驗證圖片return EncoderHelper.getChallangeAndWriteImage(cs, "png", out);} }

    HTML

    /WebContent/jsp/login.jsp

    引入js / html

    <script src="${js_root}/js/jquery-1.11.1.js"></script> <script src="${js_root}/js/jquery.validate.min.js"></script> <script src="${js_root}/js/messages_zh.js"></script>

    gup取參函數 / js

    function gup(name) {name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");var regexS = "[\\?&]" + name + "=([^&#]*)";var regex = new RegExp(regexS);var results = regex.exec(location.pathname);if (results == null) {return location.pathname;} else {return results[1];}}

    初始化驗證 / js

    $(document).ready(function() {// validate the comment form when it is submitted$("#signupForm").validate({rules : {username : {required : true,minlength : 2,},password : {required : true,minlength : 6},verify : {required : true,minlength : 4}},messages : {username : {required : "請輸入用戶名",minlength : "用戶名至少由兩個字符組成"},password : {required : "請輸入密碼",minlength : "密碼長度不能小于 6 個字符"},verify : {required : "請輸入驗證碼",minlength : "驗證碼長度為4個字符"}}});});

    設置提交方式 / js

    $.validator.setDefaults({submitHandler : function() {$.post(// 接收數據的頁面'login',// 傳給后臺的數據,多個參數用&連接或者使用json格式數據:{a:'value1',b:'value2'}{username : $("#username").val(),password : $("#password").val(),verify : $("#verify").val()}, function(data) {if (data.code == '200') {alert("msg: " + data.msg + "\n" + "即將跳轉。");location.href = gup("ReturnURL");} else if (data.code == '400') {alert(data.msg);location.reload();}},// 默認返回字符串,設置值等于json則返回json數據'json').error(function() {alert("登錄失敗,請稍后再試。");});}});

    設置表單 / html

    <form class="cmxform" id="signupForm" method="post" action="login"><fieldset><legend>請輸入你的用戶名和密碼</legend><p><label for="cusername">用戶名</label> <input id="username"name="username" type="text"></p><p><label for="cpassword">密碼</label> <input id="password"name="password" type="password"></p><p><label for="cverify">驗證碼</label> <input id="verify" name="verify"type="text"> <img id="verifyImg"onclick="javascript:this.src=('verify?reload='+(new Date()).getTime())"src="verify" width="85" height="35" alt="點擊查看驗證碼"></p><p><input class="reset" type="reset" value="重置"> <inputclass="submit" type="submit" value="登錄"></p></fieldset> </form>

    代碼驗證 / java

    /controller/UserController.java

    @Login(action = Action.Skip) @RequestMapping(value = "/login", method = RequestMethod.POST)public @ResponseBody Map<String, Object> login(@RequestParam(value = "username") String username,@RequestParam(value = "password") String password,@RequestParam(value = "verify") String verify) {Map<String, Object> map = new HashMap<String, Object>();String verifyCode = String.valueOf(request.getSession().getAttribute("verify"));if (!verifyCode.equalsIgnoreCase(verify)) {map.put("code", "400");map.put("msg", "驗證碼錯誤");return map;}request.getSession().removeAttribute("verify");// 其他登錄認證機制...}

    登出

    /controller/UserController.java

    @RequestMapping(value = "/logout") public String logout() {/*** <p>* SSO 退出,清空退出狀態即可* </p>* * <p>* 子系統退出 SSOHelper.logout(request, response); 注意 sso.properties 包含 退出到* SSO 的地址 , 屬性 sso.logout.url 的配置* </p>*/SSOToken st = SSOHelper.getToken(request);if (st != null) {logger.debug(String.format("logout: id=%d, uid=%s", st.getId(), st.getUid()));}SSOHelper.clearLogin(request, response);return "redirect:/"; }

    觸發登出事件:利用即可。
    注意點:使用SSOHelper.clearLogin(request, response)

    重定向

    /WebContent/jsp/login.jsp

    添加地址取參函數

    function gup(name) {name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");var regexS = "[\\?&]" + name + "=([^&#]*)";var regex = new RegExp(regexS);var results = regex.exec(location.pathname);if (results == null) {return location.pathname;} else {return results[1];} }

    跳轉回登錄前的頁面

    Kisso攔截器將未授權訪問重定向至登錄頁,帶ReturnURL參數,存放跳轉前地址,登錄成功后,自動跳回。

    if (data.code == '200') {alert("msg: " + data.msg + "\n" + "即將跳轉。");location.href = gup("ReturnURL"); } else if (data.code == '400') {alert(data.msg);location.reload(); }

    注意點:

    • 返回200時,為成功,跳轉
    • 返回400時,為失敗,刷新頁面

    登出的重定向

    點擊鏈接登出時,服務器返回302重定向。

    HTML

    <p><a href="tologout">登出</a></p>

    JAVA

    @RequestMapping(value = "/logout") public String logout() {// SSO清理工作// ...return "redirect:/"; }

    注意點:

    • 適用ajax。瀏覽器中的js跳轉,地址可以從服務器寫,如/ssm
    • 適用a href。服務器的302、301跳轉,Controller方法返回String,值為"redirect:path/to/redirect"

    顯示用戶名

    /WebContent/jsp/index.jsp
    /WebContent/jsp/permission.jsp

    HTML

    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!-- other --> <p>${ userid },歡迎光臨!</p>

    JAVA

    SSOToken st = SSOHelper.getToken(request); if (st != null) {request.setAttribute("userid", st.getUid()); } return "/index";

    注意點:

    • 模版引擎除了JSTL外還有Velocity等。Velocity充分體現了的MVC思想。
    • 顯示用戶名的流程。

    MVC簡易流程:

  • 控制層:利用Kisso獲取用戶信息,放入模型。
  • 模型層:存放、傳遞數據。
  • 視圖層:根據模型,解析數據,渲染頁面。
  • 常見問題

    ContextLoader類不存在

    項目 -> 屬性 -> Web Deployment Assembly
    Add => Java Build Path Entries => Maven Dependencies

    缺少類

    修改pom.xml,然后Update Project。

    常用解決辦法

    • 清理Tomcat目錄
    • 重啟Tomcat
    • Classpath路徑問題,增加JRE、Tomcat、Maven、Web App Lib
    • Web Module問題,在項目屬性中的Project Facets
    • 修改容器名稱,即localhost:8080/???,項目屬性中的Web Project Settings
    • Java文件錯誤,修改Java Compiler,即編譯器版本
    • 注意文件名和路徑的大小寫

    總結

    以上是生活随笔為你收集整理的【SSM】Kisso实用教程(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    夜夜夜夜夜夜操 | 91av免费在线观看 | 精品久久久网 | 国产精品porn| 亚洲日b视频 | 九九九视频在线 | 精品久久久久久国产91 | 国产日韩中文字幕 | 天天人人综合 | 日韩高清在线一区二区 | 久久婷婷精品 | 久草在线观看资源 | 婷婷色中文字幕 | 综合色狠狠 | 成x99人av在线www | 国产午夜精品久久 | 国内精品久久久久影院一蜜桃 | 亚洲第一av在线播放 | 欧美成人手机版 | 亚洲国产三级在线观看 | 久久99久久99精品免费看小说 | 欧美黄色软件 | 国产精品视频永久免费播放 | 国产美女永久免费 | 99re视频在线观看 | 精品伊人久久久 | 久久国产一区二区 | 成人a免费 | 五月天婷亚洲天综合网鲁鲁鲁 | 在线观看黄污 | 免费a级毛片在线看 | 日韩在线免费视频 | 久久综合色综合88 | 99精品国产一区二区三区不卡 | 亚洲视频在线播放 | 国产永久免费高清在线观看视频 | 中文字幕网址 | www.91av在线| av网在线观看 | 夜夜爽88888免费视频4848 | 国产成人久 | 成人网在线免费视频 | 国产天天爽 | 国产免费观看av | 免费在线播放 | 99久久99热这里只有精品 | 日韩免费观看一区二区三区 | 在线免费看片 | 美女很黄免费网站 | 国产成人av| 日本特黄一级 | 特及黄色片 | 国产精品综合在线 | 九色91在线 | 911久久| av电影久久 | 91麻豆精品91久久久久同性 | 日韩资源在线 | 99久久日韩精品视频免费在线观看 | 日韩成人免费在线观看 | 日本一区二区不卡高清 | 亚洲少妇天堂 | 久久怡红院 | 中文资源在线官网 | 免费欧美精品 | 日日色综合 | 这里只有精品视频在线观看 | 日韩激情片在线观看 | 免费观看版 | 中文在线免费观看 | 久久成人麻豆午夜电影 | 久久久999免费视频 日韩网站在线 | 狠狠色丁香婷婷综合久久片 | 国产精品一区在线播放 | 亚洲乱码在线 | 国产精品麻豆91 | 蜜臀久久99精品久久久无需会员 | 国产精品18久久久久久久 | 久久免费精品一区二区三区 | 日本精品久久久久中文字幕 | 美女福利视频网 | 日日夜夜精品网站 | av资源免费在线观看 | 日b黄色片| 国产精品美女久久久久久久 | 日韩1级片 | 久久久免费看视频 | 国产中文字幕在线播放 | 综合色天天| 国产亚洲精品久久19p | av高清网站在线观看 | 亚洲精品国产片 | www.亚洲视频 | 综合色中色 | 99久久99久久精品国产片果冰 | av夜夜操| 国产成人精品av久久 | 亚洲黄色片 | 精品久久久久久久 | 日韩视频一区二区三区在线播放免费观看 | 亚洲视频高清 | 久久综合婷婷综合 | 国产精品18久久久久久首页狼 | 香蕉91视频 | 国产日韩精品一区二区三区 | 亚洲成人家庭影院 | 午夜av片| 精品9999 | 国产精久久久 | 国产精品一区二区在线看 | 五月天亚洲激情 | 久草www| 国产精品一区二区久久精品爱涩 | 久草久草久草久草 | 免费一级黄色 | 天堂av免费观看 | 国产人在线成免费视频 | 久久国产精品一区二区 | 91精品导航 | 欧美日韩在线免费观看视频 | 国产成人久久久77777 | 国产黄色免费看 | 亚州人成在线播放 | 美女亚洲精品 | 婷婷精品在线 | 久久影院中文字幕 | 国产精品色在线 | 国产精品视频大全 | 免费在线观看视频a | 人成在线免费视频 | 三级动态视频在线观看 | 伊人天堂av | 色网站在线免费 | 国产亚洲精品久久 | 欧美日韩高清一区二区 国产亚洲免费看 | 国产精品美乳一区二区免费 | 国产精品午夜久久久久久99热 | 午夜精品久久久久久中宇69 | 亚洲最新av网址 | 亚洲精品18日本一区app | 97超碰人人模人人人爽人人爱 | 国内精品一区二区 | 日韩在线观看视频中文字幕 | 国产亚洲精品久久久网站好莱 | 亚洲精品a区| 在线免费看黄网站 | 国产a国产a国产a | 视频在线91| 91在线www | 欧美一区二视频在线免费观看 | 久久久精品欧美一区二区免费 | 成人午夜电影网站 | 最新av在线播放 | 亚洲精品国产综合99久久夜夜嗨 | 日日夜夜综合网 | 午夜国产在线 | 在线免费观看视频一区二区三区 | 国产精品毛片一区二区 | 亚洲精品 在线视频 | 免费网站黄 | 99热这里只有精品国产首页 | 人人干免费 | 日韩二区在线观看 | 在线观看www. | 91精品久 | 欧美经典久久 | 天天狠狠干 | 69精品| 日韩理论在线 | 丰满少妇高潮在线观看 | 天天操天天摸天天爽 | 一级国产视频 | 欧美精品久久久久久久久久丰满 | 97视频久久久 | 日日干,天天干 | 久久高清毛片 | 亚洲精品在线观看免费 | 夜夜视频资源 | 欧美成人一区二区 | 成人黄色一级视频 | 狠狠干夜夜操天天爽 | 免费av在线网 | 草莓视频在线观看免费观看 | 91亚洲精品国偷拍 | 精品国产_亚洲人成在线 | 中文区中文字幕免费看 | 色网免费观看 | 97在线观看免费高清 | 国产高清无线码2021 | 一区二区三区国产欧美 | 99久久国产免费,99久久国产免费大片 | 国产一区视频在线 | 亚洲一区二区观看 | 亚洲三级性片 | 四虎影视精品永久在线观看 | 国产黄色精品在线观看 | 亚洲欧洲精品一区二区 | 日本女人的性生活视频 | 在线黄网站 | free,性欧美 九九交易行官网 | 国产高清不卡在线 | 国产最新在线 | 国产资源免费在线观看 | 久久一区国产 | 在线视频a | 人人干人人搞 | 国产不卡毛片 | 超碰免费公开 | 人人搞人人干 | 日本动漫做毛片一区二区 | 国产高清无线码2021 | 日韩久久一区二区 | 五月婷婷网站 | 黄色免费在线视频 | 国产91精品久久久久 | 亚州精品天堂中文字幕 | 日日夜夜精品视频天天综合网 | 综合亚洲视频 | 亚洲三区在线 | 日韩色在线 | 91在线九色 | 成人网在线免费视频 | 中文字幕丝袜美腿 | 色婷婷久久一区二区 | 激情综合狠狠 | 亚洲国产精品99久久久久久久久 | 久久1电影院 | 婷婷国产视频 | 欧美大香线蕉线伊人久久 | 日韩免费在线观看网站 | 91成人在线网站 | 成人精品电影 | 午夜色影院| 亚洲免费永久精品国产 | 免费高清无人区完整版 | 亚洲天堂视频在线 | 亚洲精品高清在线 | av电影在线观看完整版一区二区 | 久久伊人精品天天 | 久久久国产精品电影 | 在线观看免费黄视频 | 国产一区网址 | 黄色一级影院 | 久久精品a | 亚洲欧洲xxxx | 日本3级在线观看 | 日日操日日插 | 国产区精品在线观看 | 丰满少妇久久久 | 国产精品手机在线 | 国产99黄| 午夜av网站 | 天天综合色天天综合 | 久99热| 日日干影院 | 天天综合网天天综合色 | 久久久鲁 | 美女网站色| 久久国产精品99久久久久久老狼 | 高清视频一区二区三区 | 日韩免费电影一区二区三区 | 欧美性猛片, | 亚洲年轻女教师毛茸茸 | 亚洲精品国偷拍自产在线观看蜜桃 | 成人片在线播放 | 深夜福利视频在线观看 | 66av99精品福利视频在线 | 黄色国产高清 | 久久人人爽爽人人爽人人片av | 日韩大片在线播放 | 中文字幕乱码电影 | 黄色小说视频在线 | 亚洲狠狠丁香婷婷综合久久久 | 久久高清片 | 国内精品久久天天躁人人爽 | www..com黄色片| 亚洲国产成人精品电影在线观看 | 99精品视频在线看 | 中文成人字幕 | 国产午夜不卡 | 中文字幕 二区 | av在线网站大全 | 日韩一区在线播放 | 日韩特黄一级欧美毛片特黄 | 国产99久久精品 | 在线一级片 | 亚洲成人精品久久久 | 国产91大片 | 热re99久久精品国产66热 | 欧美做受高潮电影o | 亚洲天堂精品视频在线观看 | 国产91精品高清一区二区三区 | 黄色一级大片在线免费看国产一 | 一区二区三区免费在线观看视频 | 亚洲视频 一区 | 91一区二区三区久久久久国产乱 | 国产99久久精品一区二区300 | 91高清在线看 | 久久成人久久 | 欧美日韩精品在线 | 在线观看mv的中文字幕网站 | 91精品久久久久久久久久久久久 | 欧美色图30p | 欧美日韩一区二区三区在线免费观看 | 欧美精品被| 在线免费视频 你懂得 | 国产手机视频在线观看 | 五月天色中色 | 日韩av区 | 日韩免费成人av | 中文字幕在线色 | 在线免费观看视频一区二区三区 | 99色网站| 98超碰人人 | 国产精品第二页 | 中文字幕日韩免费视频 | 欧美一级看片 | 久久久精品日本 | 一级黄网 | 一区电影 | 中文字幕在线视频网站 | 欧美国产精品久久久久久免费 | 视频 天天草 | 日韩二区三区 | 国产精品一区欧美 | av在线成人 | 丁香激情综合国产 | 日日草视频 | 全久久久久久久久久久电影 | 天天操夜操 | 日韩黄视频| 69久久夜色精品国产69 | 久久久91精品国产一区二区三区 | 99久久精品国产欧美主题曲 | 91精品一区二区三区久久久久久 | 人人射 | 欧美性精品 | 亚洲精品中文字幕在线 | 97品白浆高清久久久久久 | 成人av网址大全 | 亚洲日本va中文字幕 | 一本一本久久a久久精品综合小说 | 色94色欧美 | 一区三区视频在线观看 | 国产精品一区二区av日韩在线 | 欧美日韩高清一区二区三区 | 九九热在线视频 | 国产精品激情 | 天天弄天天操 | 久久99中文字幕 | 亚洲精品国产欧美在线观看 | 国产成人久久精品一区二区三区 | 亚洲成人黄色在线 | 99精品国产兔费观看久久99 | 成年人在线观看免费视频 | 日本狠狠色 | 九九99 | 成年人免费av网站 | 久久综合导航 | 午夜精品av在线 | 国产一级二级av | 日韩精品播放 | 国产午夜精品福利视频 | 欧美激情精品久久 | 五月天婷婷狠狠 | 天天干天天干天天操 | 免费在线黄色av | 亚洲日本va在线观看 | 国产精品综合av一区二区国产馆 | 亚洲国产精品99久久久久久久久 | 久久伊人婷婷 | a级国产乱理论片在线观看 特级毛片在线观看 | 五月开心婷婷 | 中文字幕久久久精品 | 亚洲精品视频网址 | 久久婷亚洲五月一区天天躁 | 国产精品国产自产拍高清av | 不卡电影一区二区三区 | 激情久久伊人 | 狠狠干网址 | 久草在线免费新视频 | 久久久久久久看片 | 国产成人免费观看 | 高清av中文字幕 | 色欲综合视频天天天 | 欧美精品久久 | 国产成人精品av在线观 | 国产精品久久久久影院 | 久久久亚洲影院 | 亚洲专区 国产精品 | 在线日本看片免费人成视久网 | 国产在线精品一区二区三区 | 日韩视频在线观看免费 | 99久久精品日本一区二区免费 | 97色狠狠| 亚洲91在线 | 中文字幕在线高清 | 日本在线观看视频一区 | 免费在线国产黄色 | 日韩中文在线字幕 | 国产a精品 | 99在线国产 | 亚洲精品动漫久久久久 | 夜夜操天天 | 日韩有码在线观看视频 | 久久电影网站中文字幕 | 9在线观看免费高清完整版在线观看明 | 玖玖在线精品 | 国产成本人视频在线观看 | 深爱婷婷 | 欧美成人亚洲成人 | 国产精品99久久久久久有的能看 | 久久久久久久久久久黄色 | 在线观看免费成人av | 天天躁日日躁狠狠躁av麻豆 | 国产成人91 | 国产精品一区二区三区在线免费观看 | 亚洲视频在线观看免费 | 日韩av电影一区 | av成人在线看 | 丁香婷婷在线观看 | 五月天亚洲综合 | 欧美日韩国产精品一区 | 婷婷国产在线 | 一区二区三区三区在线 | 亚洲另类在线视频 | 精品视频999 | 免费看黄在线观看 | 国产美女免费观看 | 午夜av色 | 国产精品大尺度 | a午夜电影| 欧美日韩二区三区 | 欧美有色 | 欧美成人精品欧美一级乱 | 国产一区二区三区高清播放 | 久久综合五月天婷婷伊人 | 国产又粗又猛又黄 | 国产麻豆精品久久 | 久久天天躁夜夜躁狠狠躁2022 | 久久久国产精品麻豆 | 国产精品网红福利 | 国产亚洲精品av | 99久久久久久国产精品 | 美女黄色网在线播放 | www日日| 久草在线观看资源 | 国产尤物一区二区三区 | 免费福利片2019潦草影视午夜 | 成人a v视频| 免费看一级特黄a大片 | 日本黄色a级大片 | 99欧美精品 | 色橹橹欧美在线观看视频高清 | 欧美一级欧美一级 | 日韩久久久久久久久久 | 成人黄色小说视频 | 日韩av偷拍 | av中文字幕日韩 | a黄色片| 中文字幕高清免费日韩视频在线 | 一级特黄av | 日韩欧美国产免费播放 | 色噜噜狠狠色综合中国 | 丁香婷婷激情网 | 国内精品视频在线播放 | 亚洲精品国产第一综合99久久 | 911精品美国片911久久久 | 99中文字幕在线观看 | 久久黄网站 | 中文一区二区三区在线观看 | 91片黄在线观看动漫 | 婷婷在线网站 | 色婷久久 | 国产手机在线精品 | 日日夜夜综合网 | 日韩三级av | 99精品久久99久久久久 | 日本久久精品视频 | 黄色的视频网站 | 国产色a在线观看 | 99视频99| 色婷婷久久久综合中文字幕 | 在线观看国产福利片 | www.色五月.com | 天天操天天干天天玩 | 免费网站黄 | 黄a在线观看 | 日韩精品中文字幕久久臀 | 中文字幕一区二区三区乱码在线 | 日韩在线中文字幕视频 | 久草在线在线精品观看 | 欧美另类交人妖 | 伊人亚洲精品 | 国产精品精品国产色婷婷 | 黄色小视频在线观看免费 | 日本在线中文 | 中文字幕第一 | 国产香蕉久久 | 成人av在线网 | 久久久国产精品一区二区中文 | av在线播放观看 | a黄色大片 | 久久免费a | 丁香婷婷激情啪啪 | 欧美一二区视频 | 99热在线精品观看 | 成人久久网 | 在线一区电影 | 日韩性xxxx | 亚洲精品88欧美一区二区 | 国产色一区 | 一区二区高清在线 | 久久男人中文字幕资源站 | 精品久久网站 | 久久草视频 | a电影免费看 | 免费日韩视频 | 在线成人免费av | 夜色.com| 久久久一本精品99久久精品 | 久久婷婷一区二区三区 | 四虎小视频 | 亚洲精品xx | 色诱亚洲精品久久久久久 | 国产一级电影免费观看 | 国产在线看 | 久久99国产精品视频 | 国产高清av免费在线观看 | 深夜免费福利视频 | 99国产精品久久久久久久久久 | 狠狠色狠狠色 | www日韩高清 | 色www免费视频 | 91精品无人成人www | 日日草天天草 | 91精品国自产在线观看欧美 | 蜜臀久久99精品久久久酒店新书 | 亚洲日本韩国一区二区 | 日日夜夜精品 | 国产资源网 | 国产特级毛片aaaaaa毛片 | 综合久久网 | www.久久99| a在线观看免费视频 | 欧美日韩中文字幕综合视频 | 国产精品18久久久久久久久久久久 | 日本中文字幕网 | 久久久久久久久久亚洲精品 | 日本最新高清不卡中文字幕 | 日韩aⅴ视频 | 91麻豆视频| 在线视频a| 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 中文字幕在线一区二区三区 | 久久亚洲专区 | 超碰在线人人艹 | 天天干天天干天天干天天干天天干天天干 | 国产精品一区二区三区免费视频 | 黄色大片日本 | 在线观看免费观看在线91 | 国产精品四虎 | 日韩a在线观看 | 日韩高清在线一区二区三区 | 久久久久久片 | v片在线播放 | 国产精品一区免费在线观看 | 狠狠躁夜夜躁人人爽超碰91 | 在线免费中文字幕 | 午夜久久成人 | 国产电影一区二区三区四区 | 欧美作爱视频 | 草樱av| 精品9999 | 日韩一区二区在线免费观看 | 一区二区三区在线免费播放 | 热久久国产精品 | 久久婷婷色 | 欧美另类高清 videos | 欧美在线视频免费 | 国产精品亚洲片夜色在线 | 国产精品第7页 | 少妇搡bbbb搡bbb搡69 | 男女啪啪免费网站 | 中文字幕在线看视频 | 国产色一区 | 亚洲乱亚洲乱亚洲 | 亚洲欧美日韩在线看 | 免费观看www小视频的软件 | 黄色成人av在线 | 日本精品视频在线观看 | 最近中文字幕免费视频 | 亚洲天天做 | 久久久久久久久影院 | 精品亚洲成a人在线观看 | 日日日爽爽爽 | 92中文资源在线 | 国产日韩在线观看一区 | 国产五十路毛片 | 99久久精品国产亚洲 | 国产精品毛片一区二区 | 国产高清视频免费最新在线 | 热99在线| 国产小视频在线免费观看 | 日韩在线免费视频观看 | 国产精品丝袜 | 在线中文字幕播放 | 日韩久久精品一区二区 | 91成人网在线播放 | 91视频com | 久久av电影| 夜夜爽www| 91麻豆精品国产自产在线游戏 | 人人看97| 国产午夜在线 | 免费观看福利视频 | 日韩特黄一级欧美毛片特黄 | 免费看的黄色片 | 六月丁香激情综合色啪小说 | 天天插日日射 | 狠狠狠色狠狠色综合 | 丁香综合网 | 九九在线播放 | 九九热只有精品 | 毛片永久新网址首页 | 国产成人精品一区二区三区福利 | 日韩精品极品视频 | 色99视频| 久久综合激情 | 亚洲国产成人高清精品 | 国产色拍| 亚洲综合激情网 | 国产 日韩 欧美 中文 在线播放 | 中文字幕人成乱码在线观看 | 1024久久| 国产黄色片免费看 | 午夜国产在线 | 97av影院| 香蕉在线视频播放网站 | 狠狠干五月天 | 在线高清一区 | 日韩成人精品一区二区三区 | 久久这里只有精品视频99 | 久久久久看片 | 国产69精品久久app免费版 | 日韩欧美视频二区 | 久久理论视频 | 五月天六月色 | 午夜精品视频免费在线观看 | 亚洲午夜久久久久久久久久久 | 日韩二区三区在线 | 亚洲精品免费在线播放 | 久艹视频在线观看 | 三上悠亚一区二区在线观看 | 成人亚洲精品国产www | 久久久久久久免费观看 | 欧美与欧洲交xxxx免费观看 | 国产一区私人高清影院 | 97精品视频在线播放 | 国产精品免费在线播放 | 在线观看视频h | 日韩三级视频在线观看 | 97免费视频在线 | 亚洲日本va午夜在线影院 | 91免费网址 | 色婷婷免费视频 | av线上看 | 九七视频在线 | 亚一亚二国产专区 | 国产精品黄色在线观看 | 日本中文字幕在线一区 | 亚洲 欧美 变态 国产 另类 | 国产美女精品久久久 | 91精品啪在线观看国产81旧版 | 四虎天堂| 亚洲无吗视频在线 | zzijzzij亚洲日本少妇熟睡 | 色香网| 欧美精品在线观看免费 | 天天操天天能 | 免费男女羞羞的视频网站中文字幕 | 久久国产精品99久久久久久丝袜 | 日韩高清www| 婷婷色5月 | 成人在线视频网 | 精品久久久免费视频 | 国产亚洲资源 | 91综合视频在线观看 | 色就色,综合激情 | 日本女人在线观看 | 久久午夜电影 | 国产女人40精品一区毛片视频 | 国产在线2020 | 国产123区在线观看 国产精品麻豆91 | www.天天射.com| 成人中文字幕+乱码+中文字幕 | 日韩三级视频在线观看 | 久草视频中文 | 国产精品美女久久久久久久网站 | 特级片免费看 | 久久久激情视频 | 国产精品av一区二区 | 日日干av | 久草在线国产 | 国产精品你懂的在线观看 | 亚洲免费观看在线视频 | 亚洲一区二区三区四区精品 | 久久久午夜电影 | 久久不卡视频 | 久久电影网站中文字幕 | 成人一级片视频 | 五月婷丁香 | 综合久久网 | 久久国产视屏 | 久久免费视屏 | 久久久久久久免费观看 | 中文字幕视频观看 | 日韩最新在线视频 | 久久综合色婷婷 | 中文字幕日韩伦理 | 97精品视频在线播放 | 欧美另类tv | 免费视频区 | av福利免费 | 色视频网站在线观看一=区 a视频免费在线观看 | 麻豆视频网址 | 久久久久一区 | 人人干在线 | 中文字幕在线看 | 狠狠躁夜夜a产精品视频 | 超碰在线日韩 | 中文字幕在线播放av | 久草网在线视频 | 成人黄色电影视频 | 手机在线黄色网址 | 麻豆传媒在线视频 | 欧美日韩国产精品一区二区亚洲 | 久久久国产一区二区 | 深爱婷婷激情 | 中国黄色一级大片 | 国产精品精品国产婷婷这里av | 国产你懂的在线 | 国产91亚洲精品 | 91亚瑟视频| 欧美少妇xxxxxx| 丁香激情网 | 欧美日韩aa| 天天色天天操综合 | 亚洲天堂自拍视频 | 欧美日韩国产一区二区在线观看 | 亚洲一区二区视频在线播放 | 亚洲精品免费播放 | 久久久久一区二区三区四区 | 91成人黄色 | 天天翘av | 五月婷婷黄色 | 五月天狠狠操 | 日韩精品一区二区三区高清免费 | 日韩午夜电影 | 91精品久久久久久久久久入口 | 91插插视频 | .国产精品成人自产拍在线观看6 | 婷婷色六月天 | 综合婷婷久久 | 黄色特级毛片 | 六月久久婷婷 | 91完整版观看 | v片在线播放 | 久久精品aaa | 中文字幕 91 | 狠狠色丁香婷婷综合基地 | 久久综合九色99 | 97av色| 五月婷视频| 亚洲91视频 | 日p在线观看 | 亚洲精品免费在线观看 | 亚洲激精日韩激精欧美精品 | 日韩午夜一级片 | 一区二区三区观看 | av中文天堂在线 | 亚洲欧美激情精品一区二区 | 亚洲六月丁香色婷婷综合久久 | 国产精品9区 | 天天操夜夜逼 | 麻豆激情电影 | 69视频永久免费观看 | 美女搞黄国产视频网站 | 久久成人精品电影 | 欧美精品乱码久久久久久按摩 | 狠狠色丁香九九婷婷综合五月 | 国产在线播放一区 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 蜜臀av性久久久久av蜜臀妖精 | 精品一区二区在线观看 | 亚洲精品国产精品久久99 | 欧美日韩中文另类 | 国产精品久久久久久久妇 | 国产欧美综合在线观看 | 狠狠的操狠狠的干 | 中文字幕免费高清在线观看 | 六月丁香在线视频 | 99re热精品视频 | www日韩视频 | 国产精品美女久久久久久久久久久 | 国产精品一区二区久久精品爱涩 | 日日干美女 | 亚洲国产午夜 | 91av九色| 国产精品亚州 | 久久久久久久电影 | 91九色在线视频 | 久久久久久久久爱 | 国产美女视频网站 | 国产精品美女久久久久久久 | 国产精品久久久久久久久免费 | 日韩三级成人 | 天天操偷偷干 | 亚洲国产中文字幕 | 久久精品在线 | 亚洲精品乱码久久久久久久久久 | 天天天天天干 | 国产视频在线观看一区 | 日韩a欧美 | 欧美日韩另类视频 | 深爱激情站 | 久章草在线观看 | 国产福利专区 | 国产精品久久久久久久电影 | 国产美女久久 | 国产一卡二卡四卡国 | 天天色天天草天天射 | 国产精品久久久久久久久久白浆 | 91九色在线播放 | 国产亚洲一区二区三区 | 国产首页| 在线亚洲成人 | 99视频在线精品 | 亚洲国产手机在线 | 亚洲欧洲av | 91高清免费看 | 不卡的av在线播放 | 婷婷六月中文字幕 | 黄色的网站在线 | 久久久久久久久久亚洲精品 | 欧美a性 | 日韩一区二区三区高清免费看看 | 超碰激情在线 | www.夜夜草 | 亚洲春色综合另类校园电影 | 免费激情在线电影 | 最新动作电影 | 九九免费在线观看视频 | 精品亚洲国产视频 | 日韩城人在线 | 在线播放国产一区二区三区 | 超碰九九 | 国内精品免费久久影院 | 伊人导航| 亚洲女同videos | 99精品久久久久 | 国产精彩视频一区二区 | 永久免费毛片 | 国产97免费 | 国产一区二区在线观看免费 | 日韩最新理论电影 | 日韩午夜av | 麻豆91精品视频 | 黄网在线免费观看 | 人人插人人做 | 日韩三级av | 97视频入口免费观看 | 亚洲国产中文在线观看 | 日韩在线字幕 | 久久国产精品免费视频 | 91日韩在线视频 | 欧美一级专区免费大片 | 久久观看最新视频 | 丁香在线观看完整电影视频 | bbb搡bbb爽爽爽 | 超碰大片 | 97视频资源 | 免费看黄色大全 | 久久精品福利视频 | 97操操操| 91精品蜜桃 | 国产区精品视频 | 最新国产在线观看 | 久久久免费毛片 | 天天躁日日躁狠狠躁 | 国产精品免费观看国产网曝瓜 | 国产高清视频免费在线观看 | 91粉色视频 | 日韩黄色大片在线观看 | 97品白浆高清久久久久久 | 婷婷色伊人 | 欧美性久久久久久 | 91av电影在线 | 麻豆首页 | 亚洲国产经典视频 | 91欧美国产 | 18国产精品福利片久久婷 | 在线看一级片 | 97人人模人人爽人人喊中文字 | 麻豆手机在线 | 九九免费在线观看 | 亚洲激情婷婷 | 在线观看深夜视频 | 美国三级黄色大片 | 日韩精品中文字幕在线 | 在线观看av网站 | 黄色视屏av | 天天干夜夜爱 | 麻豆视频免费入口 | 人人揉人人揉人人揉人人揉97 | 福利电影久久 | 久久99精品久久久久久秒播蜜臀 | 激情五月婷婷网 | 国产精品福利无圣光在线一区 | 国产色小视频 | 国产精品成人一区二区三区 | 欧美一二区在线 | 国产爽妇网 | 欧美日韩精品久久久 | 日韩www在线 | 日日操夜 | 天天干,天天射,天天操,天天摸 | 中文字幕永久免费 | 精品国产乱码 | 久久综合日| 欧美日韩一级久久久久久免费看 | 99久热 | 最近中文字幕在线 | 99999精品视频 | 国产精品视频在线观看 | 国产明星视频三级a三级点| 亚洲视频第一页 | 五月天综合激情 | 日韩欧美视频免费在线观看 | 国产在线国偷精品产拍免费yy | 91人人干 | 成人午夜精品 | 九九色在线观看 | 热久久国产精品 | 狠狠干激情 | 免费看黄色91| 中文字幕视频一区 | 西西4444www大胆无视频 | 欧美日韩国产欧美 | 日本久久久久久久久久久 | 99re久久资源最新地址 | 中文字幕亚洲欧美日韩2019 | 亚洲视频久久 | 国产伦精品一区二区三区免费 | 日日干av| 香蕉视频国产在线 | 欧美精品一区二区蜜臀亚洲 | 欧美国产高清 | 久久久久一区 | 91精品一区二区三区蜜桃 | 97色噜噜 | 黄色在线网站噜噜噜 | 91天天操| 97色在线观看 | 毛片二区| 亚洲激色| 超薄丝袜一二三区 | 色中射 | 国产又粗又硬又长又爽的视频 | 天天爽天天爽夜夜爽 | 狠狠夜夜 | 日韩av免费观看网站 | 久久久久亚洲最大xxxx | 日本91在线| 五月天综合婷婷 | av超碰免费在线 | 五月婷婷操| 99成人在线视频 | 国产一二三四在线视频 | 欧美激情视频在线免费观看 | 日韩在线观看网站 | 黄色片视频在线观看 | 国产精品毛片完整版 | 日本久久免费视频 | 日韩av不卡在线观看 | 天天干国产 | 美女黄久久| 欧洲av在线| 亚洲四虎在线 | 欧美一级免费 | 国产成人一区二区精品非洲 | 国产精品欧美精品 | 国产伦精品一区二区三区免费 | 成人av在线电影 | 免费人成在线观看网站 | 久草热视频 | 日本三级不卡视频 | 久久久久久久久免费视频 |