国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

Spring Security 實(shí)現(xiàn)動(dòng)態(tài)權(quán)限菜單方案(附源碼)

共 34295字,需瀏覽 69分鐘

 ·

2022-07-08 21:31

????關(guān)注后回復(fù) “進(jìn)群” ,拉你進(jìn)程序員交流群????

系統(tǒng)權(quán)限管理

1、前言

在實(shí)際開發(fā)中,開發(fā)任何一套系統(tǒng),基本都少不了權(quán)限管理這一塊。這些足以說明權(quán)限管理的重要性。其實(shí)SpringSecurity去年就學(xué)了,一直沒有時(shí)間整理,用了一年多時(shí)間了,給我的印象一直都挺好,實(shí)用,安全性高(Security可以對密碼進(jìn)行加密)。而且這一塊在實(shí)際開發(fā)中也的確很重要,所以這里整理了一套基于SpringSecurity的權(quán)限管理。

案例代碼下面有下載鏈接。

2、案例技術(shù)棧

如果對于SpringSecurity還不了解的話可以先了解一下SpringSecurity安全控件的學(xué)習(xí),頁面采用的是Bootstrap寫的(頁面就簡單的寫了一下,可以根據(jù)自己的需求更改),其實(shí)后端理解了,前臺就是顯示作用,大家可以自行更換前臺頁面顯示框架,持久層使用的是Spring-Data-Jpa。

并且對后端持久層和控制器進(jìn)行了一下小封裝,Java持久層和控制器的封裝。頁面使用的Thymeleaf模板,SpringBoot整合Thymeleaf模板。

數(shù)據(jù)庫設(shè)計(jì)

1、表關(guān)系

  • 菜單(TbMenu)=====> 頁面上需要顯示的所有菜單

  • 角色(SysRole)=====> 角色及角色對應(yīng)的菜單

  • 用戶(SysUser)=====> 用戶及用戶對應(yīng)的角色

  • 用戶和角色中間表(sys_user_role)====> 用戶和角色中間表

2、數(shù)據(jù)庫表結(jié)構(gòu)

菜單表tb_menu

角色及菜單權(quán)限表sys_role,其中父節(jié)點(diǎn)parent 為null時(shí)為角色,不為null時(shí)為對應(yīng)角色的菜單權(quán)限。

用戶表sys_user

用戶和角色多對多關(guān)系,用戶和角色中間表sys_user_role(有Spring-Data-Jpa自動(dòng)生成)。

新建項(xiàng)目

1、新建springboot項(xiàng)目

新建springboot項(xiàng)目,在項(xiàng)目中添加SpringSecurity相關(guān)Maven依賴,pom.map文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.mcy</groupId>
    <artifactId>springboot-security</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot-security</name>
    <description>Demo project for Spring Boot</description>
 
    <properties>
        <java.version>1.8</java.version>
    </properties>
 
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
 
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.thymeleaf.extras</groupId>
            <artifactId>thymeleaf-extras-springsecurity5</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.webjars.bower</groupId>
            <artifactId>bootstrap-select</artifactId>
            <version>2.0.0-beta1</version>
        </dependency>
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>bootbox</artifactId>
            <version>4.4.0</version>
        </dependency>
    </dependencies>
 
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
 
</project>

2、項(xiàng)目結(jié)構(gòu)

編寫代碼

1、編寫實(shí)體類

菜單表實(shí)體類TbMenu,Spring-Data-Jpa可以根據(jù)實(shí)體類去數(shù)據(jù)庫新建或更新對應(yīng)的表結(jié)構(gòu),詳情可以訪問Spring-Data-Jpa入門:

https://blog.csdn.net/qq_40205116/article/details/103039936

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.mcy.springbootsecurity.custom.BaseEntity;
import org.springframework.data.annotation.CreatedBy;
 
import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;
 
/**
 * 菜單表
 * @author
 *
 */

@Entity
public class TbMenu extends BaseEntity<Integer{
 private String name;
 private String url;
 private Integer idx;
 @JsonIgnore
 private TbMenu parent;
 @JsonIgnore
 private List<TbMenu> children=new ArrayList<>();
 
 @Column(unique=true)
 public String getName() {
  return name;
 }
 
 public void setName(String name) {
  this.name = name;
 }
 
 public String getUrl() {
  return url;
 }
 
 public void setUrl(String url) {
  this.url = url;
 }
 
 public Integer getIdx() {
  return idx;
 }
 
 public void setIdx(Integer idx) {
  this.idx = idx;
 }
 
 @ManyToOne
 @CreatedBy
 public TbMenu getParent() {
  return parent;
 }
 
 public void setParent(TbMenu parent) {
  this.parent = parent;
 }
 
 @OneToMany(cascade=CascadeType.ALL,mappedBy="parent")
 @OrderBy(value="idx")
 public List<TbMenu> getChildren() {
  return children;
 }
 
 public void setChildren(List<TbMenu> children) {
  this.children = children;
 }
 
 public TbMenu(Integer id) {
  super(id);
 }
 
 public TbMenu(){
  super();
 }
 
 public TbMenu(String name, String url, Integer idx, TbMenu parent, List<TbMenu> children) {
  this.name = name;
  this.url = url;
  this.idx = idx;
  this.parent = parent;
  this.children = children;
 }
 
 public TbMenu(Integer integer, String name, String url, Integer idx, TbMenu parent, List<TbMenu> children) {
  super(integer);
  this.name = name;
  this.url = url;
  this.idx = idx;
  this.parent = parent;
  this.children = children;
 }
 
 @Transient
 public Integer getParentId() {
  return parent==null?null:parent.getId();
 }
}

表新建好了,下面就是實(shí)現(xiàn)增刪改查就可以了,實(shí)現(xiàn)效果如下。

新增和修改菜單。

對于Bootstrap的樹形表格,可以移步到:BootStrap-bable-treegrid樹形表格的使用。

https://blog.csdn.net/qq_40205116/article/details/103740104

菜單管理實(shí)現(xiàn)了,下一步就是實(shí)現(xiàn)角色及角色對應(yīng)的權(quán)限管理了。

角色及權(quán)限表SysRole,parent 為null時(shí)為角色,不為null時(shí)為權(quán)限。

package com.mcy.springbootsecurity.entity;
 
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.mcy.springbootsecurity.custom.BaseEntity;
import org.springframework.data.annotation.CreatedBy;
import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;
 
@Entity
/***
 * 角色及角色對應(yīng)的菜單權(quán)限
 * @author
 *parent 為null時(shí)為角色,不為null時(shí)為權(quán)限
 */

public class SysRole extends BaseEntity<Integer{
 private String name; //名稱
 private String code; //代碼
 @JsonIgnore
 private SysRole parent;
 private Integer idx; //排序
 @JsonIgnore
 private List<SysRole> children = new ArrayList<>();
 
 @Column(length=20)
 public String getName() {
  return name;
 }
 
 public void setName(String name) {
  this.name = name;
 }
 
 public String getCode() {
  return code;
 }
 
 public void setCode(String code) {
  this.code = code;
 }
 
 @ManyToOne
 @CreatedBy
 public SysRole getParent() {
  return parent;
 }
 
 public void setParent(SysRole parent) {
  this.parent = parent;
 }
 
 @OneToMany(cascade=CascadeType.ALL,mappedBy="parent")
 public List<SysRole> getChildren() {
  return children;
 }
 
 public void setChildren(List<SysRole> children) {
  this.children = children;
 }
 
 //獲取父節(jié)點(diǎn)id
 @Transient
 public Integer getParentId() {
  return parent==null?null:parent.getId();
 }
 
 public Integer getIdx() {
  return idx;
 }
 
 public void setIdx(Integer idx) {
  this.idx = idx;
 }
 
 public SysRole(String name, String code, SysRole parent, Integer idx, List<SysRole> children) {
  this.name = name;
  this.code = code;
  this.parent = parent;
  this.idx = idx;
  this.children = children;
 }
 
 public SysRole(Integer id, String name, String code, SysRole parent, Integer idx, List<SysRole> children) {
  super(id);
  this.name = name;
  this.code = code;
  this.parent = parent;
  this.idx = idx;
  this.children = children;
 }
 
 public SysRole(Integer id) {
  super(id);
 }
 
 public SysRole(){}
}

首先需要實(shí)現(xiàn)角色管理,之后在角色中添加對應(yīng)的菜單權(quán)限。

實(shí)現(xiàn)效果(也可以和菜單管理一樣,用樹形表格展示,根據(jù)個(gè)人需求。這里用的是樹形菜單展示的)。

給角色分配權(quán)限。

最后實(shí)現(xiàn)的就是用戶管理了,只需要對添加的用戶分配對應(yīng)的角色就可以了,用戶登錄時(shí),顯示角色對應(yīng)的權(quán)限。

用戶表SysUser,繼承的BaseEntity類中就一個(gè)ID字段。

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.mcy.springbootsecurity.custom.BaseEntity;
 
import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;
 
/**
 * 用戶表
 */

@Entity
public class SysUser extends BaseEntity<Integer{
 private String username; //賬號
 private String password; //密碼
 private String name;  //姓名
 private String address;  //地址
 
 @JsonIgnore
 private List<SysRole> roles=new ArrayList<>(); //角色
 
 @Column(length=20,unique=true)
 public String getUsername() {
  return username;
 }
 public void setUsername(String username) {
  this.username = username;
 }
 
 @Column(length=100)
 public String getPassword() {
  return password;
 }
 public void setPassword(String password) {
  this.password = password;
 }
 
 @Column(length=20)
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 
 @ManyToMany(cascade=CascadeType.REFRESH,fetch=FetchType.EAGER)
 @JoinTable(name="sys_user_role",joinColumns=@JoinColumn(name="user_id"),inverseJoinColumns=@JoinColumn(name="role_id"))
 public List<SysRole> getRoles() {
  return roles;
 }
 public void setRoles(List<SysRole> roles) {
  this.roles = roles;
 }
 
 public String getAddress() {
  return address;
 }
 
 public void setAddress(String address) {
  this.address = address;
 }
 
 //角色名稱
 @Transient
 public String getRoleNames() {
  String str="";
  for (SysRole role : getRoles()) {
   str+=role.getName()+",";
  }
  if(str.length()>0) {
   str=str.substring(0, str.length()-1);
  }
  return str;
 }
 
 //角色代碼
 @Transient
 public String getRoleCodes() {
  String str="";
  for (SysRole role : getRoles()) {
   str+=role.getCode()+",";
  }
  if(str.indexOf(",")>0) {
   str=str.substring(0,str.length()-1);
  }
  return str;
 }
 
}

用戶管理就基本的數(shù)據(jù)表格,效果如圖。

2、Security配置文件

Security相關(guān)配置文件,下面兩個(gè)文件如果看不懂,可以訪問SpringSecurity安全控件的學(xué)習(xí)中有詳細(xì)講解。

https://blog.csdn.net/qq_40205116/article/details/103439326

package com.mcy.springbootsecurity.security;
 
import com.mcy.springbootsecurity.service.SysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
 
    @Autowired
    private SysUserService userService;
 
    /**
     * 用戶認(rèn)證操作
     * @param auth
     * @throws Exception
     */

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        //添加用戶,并給予權(quán)限
        auth.inMemoryAuthentication().withUser("aaa").password("{noop}1234").roles("DIY");
        //設(shè)置認(rèn)證方式
        auth.userDetailsService(userService).passwordEncoder(new BCryptPasswordEncoder());
    }
 
    /**
     * 用戶授權(quán)操作
     * @param http
     * @throws Exception
     */

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable();    //安全器令牌
        http.formLogin()
                //登錄請求被攔截
                .loginPage("/login").permitAll()
                //設(shè)置默認(rèn)登錄成功跳轉(zhuǎn)頁面
                .successForwardUrl("/main")
                .failureUrl("/login?error");   //登錄失敗的頁面
        http.authorizeRequests().antMatchers("/static/**""/assets/**").permitAll();    //文件下的所有都能訪問
        http.authorizeRequests().antMatchers("/webjars/**").permitAll();
        http.logout().logoutUrl("/logout").permitAll();     //退出
        http.authorizeRequests().anyRequest().authenticated();    //除此之外的都必須通過請求驗(yàn)證才能訪問
    }
}

獲取登錄者相關(guān)信息,工具類。

import com.mcy.springbootsecurity.entity.SysUser;
import com.mcy.springbootsecurity.service.SysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.stereotype.Component;
 
import java.util.ArrayList;
import java.util.List;
 
//創(chuàng)建會(huì)話,獲取當(dāng)前登錄對象
@Component
public class UserUtils {
 @Autowired
 private SysUserService userService;
 
 /**
  * 獲取當(dāng)前登錄者的信息
  * @return 當(dāng)前者信息
  */

 public SysUser getUser() {
  //獲取當(dāng)前用戶的用戶名
  String username = SecurityContextHolder.getContext().getAuthentication().getName();
  SysUser user = userService.findByUsername(username);
  return user;
 }
 
 /**
  * 判斷此用戶中是否包含roleName菜單權(quán)限
  * @param roleName
  * @return
  */

 public Boolean hasRole(String roleName) {
  //獲取UserDetails類,
  UserDetails userDetails = (UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
  List<String> roleCodes=new ArrayList<>();
  for (GrantedAuthority authority : userDetails.getAuthorities()) {
   //getAuthority()返回用戶對應(yīng)的菜單權(quán)限
   roleCodes.add(authority.getAuthority());
  }
  return roleCodes.contains(roleName);
 }
}

3、動(dòng)態(tài)權(quán)限菜單加載相關(guān)方法

用戶表的SysUserService需要實(shí)現(xiàn)UserDetailsService接口,因?yàn)樵赟pringSecurity中配置的相關(guān)參數(shù)需要是UserDetailsService類的數(shù)據(jù)。

重寫UserDetailsService接口中的loadUserByUsername方法,通過該方法查詢對應(yīng)的用戶,返回對象UserDetails是SpringSecurity的一個(gè)核心接口。其中定義了一些可以獲取用戶名,密碼,權(quán)限等與認(rèn)證相關(guān)信息的方法。

重寫的loadUserByUsername方法。

@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
    //調(diào)用持久層接口findByUsername方法查詢用戶。
    SysUser user = userRepository.findByUsername(username);
    if(user == null){
        throw new UsernameNotFoundException("用戶名不存在");
    }
    //創(chuàng)建List集合,用來保存用戶菜單權(quán)限,GrantedAuthority對象代表賦予當(dāng)前用戶的權(quán)限
    List<GrantedAuthority> authorities = new ArrayList<>();
    //獲得當(dāng)前用戶角色集合
    List<SysRole> roles = user.getRoles();
    List<SysRole> haveRoles=new ArrayList<>();
    for (SysRole role : roles) {
        haveRoles.add(role);
        List<SysRole> children = roleService.findByParent(role);
        children.removeAll(haveRoles);
        haveRoles.addAll(children);
    }
    for(SysRole role: haveRoles){
        //將關(guān)聯(lián)對象role的name屬性保存為用戶的認(rèn)證權(quán)限
        authorities.add(new SimpleGrantedAuthority(role.getName()));
    }
    //此處返回的是org.springframework.security.core.userdetails.User類,該類是SpringSecurity內(nèi)部的實(shí)現(xiàn)
    //org.springframework.security.core.userdetails.User類實(shí)現(xiàn)了UserDetails接口
    return new User(user.getUsername(), user.getPassword(), authorities);
}

所有功能實(shí)現(xiàn)了,最后就是根據(jù)角色去顯示對應(yīng)的菜單了。

TbMenuService類中的findAuditMenu方法,查詢當(dāng)前用戶所擁有的權(quán)限菜單。

/**
 * 獲取用戶所擁有的權(quán)限對應(yīng)的菜單項(xiàng)
 * @return
 */

public List<TbMenu> findAuditMenu() {
    List<TbMenu> menus;
    //判斷是否是后門用戶
    if(userUtils.hasRole("ROLE_DIY")){
        //查詢所有菜單,子菜單可以通過父級菜單的映射得到
        menus = menuRepository.findByParentIsNullOrderByIdx();
    }else{
        //獲取此用戶對應(yīng)的菜單權(quán)限
        menus = auditMenu(menuRepository.findByParentIsNullOrderByIdx());
    }
    return menus;
}
 
//根據(jù)用戶的菜單權(quán)限對菜單進(jìn)行過濾
private List<TbMenu> auditMenu(List<TbMenu> menus) {
    List<TbMenu> list = new ArrayList<>();
    for(TbMenu menu: menus){
        String name = menu.getName();
        //判斷此用戶是否有此菜單權(quán)限
        if(userUtils.hasRole(name)){
            list.add(menu);
            //遞歸判斷子菜單
            if(menu.getChildren() != null && !menu.getChildren().isEmpty()) {
                menu.setChildren(auditMenu(menu.getChildren()));
            }
        }
    }
    return list;
}

在UserUtils工具類中的hasRole方法,判斷此用戶中是否包含roleName菜單權(quán)限。

public Boolean hasRole(String roleName) {
 //獲取UserDetails類,
 UserDetails userDetails = (UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
 List<String> roleCodes=new ArrayList<>();
 for (GrantedAuthority authority : userDetails.getAuthorities()) {
  //getAuthority()返回用戶對應(yīng)的菜單權(quán)限
  roleCodes.add(authority.getAuthority());
 }
 return roleCodes.contains(roleName);
}

之后在控制器中返回用戶對應(yīng)的菜單權(quán)限,之后在前臺頁面遍歷就可以了。

@RequestMapping(value = "/main")
public String main(ModelMap map){
    //加載菜單
    List<TbMenu> menus = menuService.findAuditMenu();
    map.put("menus", menus);
    if (menus.isEmpty()) {
        return "main/main";
    }
    return "main/main1";
}

4、首頁菜單遍歷

首頁菜單遍歷,這里使用的是LayUI菜單,如果其他框架可以自行根據(jù)頁面標(biāo)簽規(guī)律遍歷,因?yàn)轫撁媸褂玫氖荰hymeleaf模板,不是JSP,使用遍歷菜單時(shí)不是采用的EL表達(dá)式,而是使用的Thymeleaf自帶的標(biāo)簽表達(dá)式。

<div id="main">
    <div id="main_nav">
        <div class="panel-group" id="accordion" style="margin-bottom: 0;">
            <div th:each="menu, menuStat: ${menus}" th:if="${menu.children.size() != 0 && menu.children != null}" class="panel panel-default">
                <div class="panel-heading">
                    <h4 class="panel-title">
                        <p data-toggle="collapse" data-parent="#accordion" th:href="|#collapseOne${menuStat.index}|">
                            <span th:text="${menu.name}">系統(tǒng)設(shè)置</span><span class="caret"></span>
                        </p>
                    </h4>
                </div>
                <div th:if="${menuStat.first}" th:id="|collapseOne${menuStat.index}|" class="panel-collapse collapse collapse in">
                    <div class="panel-body">
                        <p th:each="subMenu:${menu.children}" th:src="${subMenu.url}" th:text="${subMenu.name}">菜單管理</p>
                    </div>
                </div>
                <div th:if="${!menuStat.first}" th:id="|collapseOne${menuStat.index}|" class="panel-collapse collapse collapse">
                    <div class="panel-body">
                        <p th:each="subMenu:${menu.children}" th:src="${subMenu.url}" th:text="${subMenu.name}">菜單管理</p>
                    </div>
                </div>
            </div>
        </div>
        <div id="nav_p">
            <p th:each="menu:${menus}" th:if="${menu.children.size() == 0}" th:src="${menu.url}" th:text="${menu.name}">成績管理</p>
        </div>
    </div>
    <div id="main_home">
        首頁內(nèi)容
    </div>
</div>

測試應(yīng)用

1、對應(yīng)效果展示

用戶數(shù)據(jù)及對應(yīng)的角色

管理員對應(yīng)的菜單權(quán)限。

用戶角色對應(yīng)的菜單權(quán)限。

測試用戶角色對應(yīng)的菜單權(quán)限。

2、測試應(yīng)用

用戶名為admin1有管理員角色的用戶登錄,菜單顯示。

用戶名為admin2有用戶角色的用戶登錄,菜單顯示。

用戶名為admin3有測試用戶角色的用戶登錄,菜單顯示。

3、案例代碼下載

下載地址:https://github.com/machaoyin/SpringBoot-Security

來源:blog.csdn.net/qq_40205116/article/details/103739978

-End-

最近有一些小伙伴,讓我?guī)兔φ乙恍?nbsp;面試題 資料,于是我翻遍了收藏的 5T 資料后,匯總整理出來,可以說是程序員面試必備!所有資料都整理到網(wǎng)盤了,歡迎下載!

點(diǎn)擊??卡片,關(guān)注后回復(fù)【面試題】即可獲取

在看點(diǎn)這里好文分享給更多人↓↓

瀏覽 25
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評論
圖片
表情
推薦
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 五月天综合| 欧美性爱在线视频| 中文无码在线视频| 无码人妻一区二区三区精品不付款 | 人妻日日| 午夜福利免费在线观看| 色哟哟一中文字慕| 谁有毛片网址| 一区二区无码高清| 91视频免费播放| 中文字幕黄色电影| 欧美婷婷| 中文字幕亚洲中文字幕| 99re在线观看观看这里只有精品| 久色精品| 日韩AAA| 欧美在线观看视频一区| av在线无码观看| 无码人妻少妇| 无码囯无精品毛片大码| 99这里都是精品| 无码免费毛片| 欧美老女人性爱视频| 欧美狠狠操| 中字无码av| 日韩欧美高清| 中文字幕+乱码+中文乱码91| 亚洲高清无码在线观看视频| 97超碰资源站| 亚洲无码A片在线观看| 成人电影aaa| 日韩A毛片| 琪琪av| 国产黄网| 中文无码熟妇一区二区| 日本高清久久| 狠狠操电影| 一级片免费视频| 日韩在线观看| 99精品视频在线免费观看| 日韩成人黄色| 欧美一级网站| 国产女人18毛片18精品| 天堂资源| 大香蕉伊人导航| 国产一区二区不卡亚洲涩情| 午夜福利站| 欧美性性生交XXXXX无码| 精品国产午夜福利在线观看| 激情视频在线免费观看| 色婷婷综合在线| 久操视频在线| 欧美一区二区三区成人| 国产热99| 无码人妻精品一区| 狠狠干干| www.狠狠操| 激情av天堂| 亚洲综合图色40p| 久久学生妹| 西西人体444rt高清大胆模特 | 97精品国产| 欧美性爱高清| 日本免费黄| 91一区二区在线播放精品| AV无码在线免费观看| 国产成人视频在线| 色哟哟视频在线观看| 老女人日逼视频| 日无码| 亚欧综合在线| 色色射| 婷婷在线观看视频| 日韩免费高清视频| 国产激情综合在线| 国产主播第一页| 日韩性生活| 亚洲小电影在线观看| 国产亚洲午夜久久久成人电影| 无码群交东京热| 91亚洲精品在线| 国精产品一品二品国精| 黄色AV免费在线观看| 9l视频自拍蝌蚪9l成人| 亚洲AV黄色| 国产精品国产三级国产| 18网站视频| 亚洲激情国产| 国产美女被爽到高潮免费A片软件 国产无遮挡又黄又爽又色视频软件 | 尻屄视频在线观看| 九九热视频在线| 精品一区二区三区四区五区| 亚洲精品无码更新| 二级黄色视频| 日韩美女性爱| 国产3p露脸普通话对白| 超碰在线播| 亚洲经典一| 一级A片黃色A片| 成年人激情网| 日本黄在线观看| 亚洲精品中文字幕成人片| 亚洲在线成人视频| 黄片视频在线播放| 欧美性猛交XXXXⅩXX| 天堂8在线视频| 国产主播AV| av无码免费在线观看| 成人做爰黄级A片免费看土方| 精品免费黄色视频| 先锋成人影音| 中国免费毛片| 欧美日韩中文在线观看| 久久A级片| 国产一区二区三区四区五区六区七区| 欧美一级高清片免费一级a| 三级成人AV| 狠狠搞狠狠操| 51成人精品午夜福利| 五月婷婷俺也去| 亚洲成人动漫在线| 六月丁香综合| 久久久视频6r| 欧美99视频| 真人一级片| 先锋影音成人资源| 午夜视频网站| 中文字幕内射| 国产操逼的视频| 日韩成人无码免费视频| 五月天丁香网| 好男人WWW一区二区三区| 高清无码免费看| 国产久久在线观看| 天天看A片| 久久久精品午夜人成欧洲亚洲韩国 | 国产美女18毛片水真多| 国产一级A片视频| 噜噜噜噜射| 97色在线视频| 黄片网址在线观看| 国精品无码一区二区三区在线秋菊 | 欧美老逼| 俺来了俺去了| 天a堂8在线www| 久久久久亚洲| 91就要爱爱视频| 久久99影院| 免费在线国产| 一区二区中文| 在线免费观看成人网站| 亚洲国产成人无码a在线播放| 少婦揉BBBB揉BBBB揉| 欧洲性爱视频在线观看| 3d啪啪动漫| 丁香五月激情在线| 国产口爆在线观看| 乖我硬了让老子cao你小视频| 成人做爰69片免费观看| 婷婷久久综| 久久亚洲成人| 五月丁香六月| 国产精品秘入口18禁网站| 国产成人精品a区在线观看| 中文乱码在线观看| 久久高潮| 人人操人人操人人操人人操| 狠狠干2025| 欧美成人高清无码| 乱伦一级| 久久91欧美特黄A片| 精品一区二区三区免费毛片| 超碰成人在线观看| 丁香五香天堂网| 操逼AV无码| 欧美大鸡巴视频| 狠狠做深爱婷婷久久综合一区 | 成人久久视频| 亚洲精品欧美| 亚洲图片激情乱伦小说| 国产一级a毛片| 亚洲第一黄| www.91madou| 国产黄网站| 国产一级片视频| 欧美日韩A| 欧美日皮视频| 91性爱| 性感成人在线| 日韩高清一级免费| 国产有码在线观看| 91免费网站在线观看| 国产毛片777777| 蜜臀av一区二区| 免费a片视频| 成人精品在线视频| 麻豆天美传媒AV果冻传媒| 国产精品无码激情视频| 91亚洲精华国产精华精华液| 天天三级片| 亚洲精品成人av| 中国极品少妇XXX| 奇米av在线| 老太婆擦BBBB撩BBBB| 亚洲最大黄色视频| 精品国产一区二区三区久久久蜜月 | 初尝人妻滑进去了莹莹视频| 小视频+福利| 嫩草视频在线观看| 性爱午夜视频| 青娱乐在线精品| 日韩大鸡巴| 日本伊人大香蕉| 午夜激情视频在线观看| AV你懂得| 91人妻人人澡人人爽人人精品一| a片在线观看视频| 久久一卡二卡| 伊人网视频在线| 国产黄色在线观看| 亚洲超级高清无码第一在线视频观看 | 蜜臀AV成人| 懂色av蜜臀av粉嫩av分 | 亚洲无aV在线中文字幕| 国产成人久久| 天天综合网站| 毛片网站视频| 黄片无码在线观看| 激情操逼| 91视频美女模特| 日本a片免费| 国产成人福利| 国产精品三| 伊人精品视频| 色色天堂成人电影| 亚洲无码色婷婷| 亚洲字幕av| 成人片在线| 国产麻豆| 东方AV免费在线观看| 夜夜嗨AV| 真人一级毛毛片| 日韩无码视频网| 久久久久亚洲AV成人网人人软件| 日本免费一区二区三区| 中文字幕五月久久婷婷| 精品999999| 在线观看网址你懂的| 抽插网| 99re在线观看| 国产在线观看黄| 肏逼综合网| 国产精品无码天天爽视频| 青青青视频在线| 欧美AAAAAAAAAA特级| 91欧美性爱| 依人大香蕉| 亚洲免费观看高清| 国产精品无码久久久久成人app| 天堂va欧美ⅴa亚洲va一夜| 亚洲色偷精品一区二区三区| 操B在线观看| 天天干强奸视频在线综合| 人妻人操| 国产又大又黄| 日逼一级片| www.久久网| 91视频高清无码| 亚洲高清无码在线视频| 波多野结衣一区二区三区| 特级西西444www| 日韩无码字幕| 中国操逼网| 国产一级a毛一级a做免费的视频| 一区二区三区水蜜桃| 精品探花| 久热中文字幕| 色v在线| 四川少妇bbbbbbbbb| 天天操人妻| 国产AV高清| 麻豆国产91| 日本在线精品视频| 亚洲日韩一区| 少妇喷水在线观看| 97精品视频在线观看| 黄色精品视频| 国产91嫩草乱婬A片2蜜臀| 大香蕉婷婷五月天| 无码人妻一区二区三区精品不付款| 日日免费视频| 777色色色| 良妇露脸15P| 大香蕉大香蕉大香蕉| 操逼视频一级| 成人三级无码| 日韩三级中文| 无码爆操| 性久久久久久久| 一级毛AA片| 超碰操一操| 亚洲无码电影网站| 久久久久久久久久久久久自慰小片 | 亚洲色一区二区| 亚洲免费精品视频| 色黄网站在线观看| 国产久久久久久久| 人人草人人看人人摸| 2021国产视频| 男女av在线| 无码欧美人XXXXX日本无码| 婷婷五月六月丁香| 亚洲中文av| 91逼| 午夜av福利| 亚洲国产成人无码| 尤物视频官网| 色婷婷官网| 亚洲一区免费| 色多多导航| 91精品婷婷国产综合久久蝌蚪| 777777国产7777777| 91福利在线视频| 毛片小说| 久久久久久久国产| 日韩无码一区二区三区| 欧美69| 精品久久免费| 久操电影网| 日韩无码不卡视频| 激情视频免费在线观看| 国产凹凸视频| 亚洲AV第二区国产精品| 开心四房播播第四婷婷| 久久av网站| 中文字幕无码人妻在线视频| 午夜黄色影院| 国产高清精品软件丝瓜软件| 操美女影院| 亚洲无码色婷婷| 韩国免费一级a一片在线播放| 黄片免费看网站| 亚洲第一av| 特黄AAAAAAAA片视频| 亚洲精品久久久久毛片A级牛奶| 亚洲视频精品| 中文字幕2025年最好看电视剧 | 成年人视频在线免费观看| 五月丁香激情视频| 手机AV在线| 微熟女地址导航| 大香蕉com| 国产无遮挡又黄又爽| 日韩人妻斩| 波多野结衣一区| 精品乱子伦一区二区三区毛| 亚洲AV秘无码不卡在线观看| 91精品大屁股白浆自慰久久久| 久热99| 特级西西444www大胆高清图片| 安徽妇搡BBBB搡BBBB按摩| www.污| 色老板免费视频| zzjicom| 人人操人人摸人人爽| 一区二区三区在线免费观看| 亚洲激情偷拍| 丁香婷婷综合网| 日韩成人AV在线| 18国产免费视频| 91麻豆国产福利在线观看| 欧美一级特黄AAAAAA片| 日日AV| 无码任你操| 日韩欧美成人网站| 国产亚洲色婷婷久久99精品91| 亚洲国产精品自| 免费看黄色的视频| 日韩色情片| www.99免费视频| 东京热黄色| 日韩中文在线观看| 69久久成人精品| 91视频在线免费看| 日韩另类| 水果派红桃AV解说| 亚洲中文字幕免费视频| 国产视频一区二区三区四区| 国产九九九视频| 黄频在线观看| 在线观看国产区| 国产激情一区二区三区| 午夜精品电影| 亚洲无码视频免费观看| 亚洲一本大道| 日韩a视频| 日韩人妻无码一区二区三区七区| 俺去俺来也在线www色情网| 黄色综合| 大香蕉99热| 美女白嫩嫩大BBB欣赏| 两根茎一起进去好爽A片在线观看| 国产午夜成人免费看片无遮挡| 色婷婷久久综合久色| 懂色AV无码中字幕一区| 欧美少妇视频| 国产三级视频| 五月丁香激情在线| 国精产品一区一区三区| 亚洲成人怡红院| 久久国产免费视频| 一区二区三区无码视频| 韩国成人无码| 国产麻豆| 精品中文在线| 中文字幕熟女人妻| 99精品一区二区三区| 日本成人无码| 人妻丝袜中出北条麻妃| 牛牛精品一区二区| 亚洲无码一级电影| 日韩成人网站在线观看| 2016av天堂网| 西西人体大胆裸体A片| 国产人妻精品一区二区三区不卡| 91视频内射| JlZZJLZZJlZZ亚洲女人17| 久久污| 日韩精品一区二区三区四在线播放 | 亚洲无线视频| 国模一区二区三区| 中文字幕日韩av| 高清无码久久| 男女无码视频| 亚洲一区高清| 超碰人人操| 99热国产在线观看| 高清无码不卡av| 欧美成人在线网站| 在线操逼视频| 中国女人操逼视频| 亚洲精品视频免费在线观看| www.欧美| 艹逼视频在线观看| 国产精品久久久久久亚洲毛片| 男女啊啊啊| 亚洲素人无码| 在线永久看片免费的视频| igao在线观看| 日韩一区二区免费视频| 91香蕉国产成人App| 蜜桃Av噜噜一区二区三| 夜色精品视频| 日韩高清无码电影| 99久久成人| 亚洲小说区图片区| 日韩二三区| 成人免费版欧美州| 五月婷婷综合激情| 97精品| 麻豆91精品91久久久| 国产黃色AAA片| 97伊人大香蕉| 亚洲欧美日韩国产| 青青草狠狠干| 超碰大香蕉| 国产精品在线免费观看| 日韩无码一级| 精品视频日韩| 黄色激情网站| 久久成人网豆花视频| 99热最新| 亚洲色小说| 中文字幕一区三区人妻视频| 一本色道久久88加勒比| 亚洲AV女人18毛片水真多| 国产高清不卡| 欧美成年人网站| 激情久久五月天| 欧美午夜成人一区二区三区| 久久水密桃| 国产精品成人无码a无码| 日本久久久久| 1024在线视频| 五月丁香六月色| 天天艹逼| 亚洲另类天堂| 在线成人小视频| 毛片一级片| 91福利院| 中文字幕av在线观看| 男人的天堂社区| 欧美一级片网站| 高清国产mv在线观看| 免费黄色片子| 日韩性爱一区二区| 人人操在线播放| 91麻豆视频在线观看| 亚洲中文字幕av天堂| 北条麻妃99| 日韩在线免费播放| 日本一区二区三区免费看| 97在线观看免费视频| 激情操逼视频| 91大熟女91大腚女人| 一区高清无码| 人人爽人人操人人爱| 嫩草视频在线观看| 亚洲区成人777777精品| 免费观看日韩无码视频| 在线看色| 91无码人妻一区二区成人aⅴ| 亚洲啪啪网站| 一级片| 中文字幕无码在线观看视频| www.日韩系列| 蜜桃久久99精品久久久酒店| 免费观看一区二区三区| 伊人久久大香蕉国产| 国产精品网站在线观看| 青草青草视频| 黄色草莓视频| 99视频在线| 麻豆国产精品一区| 国产3p露脸普通话对白| 午夜做爱福利视频| 偷拍亚洲| 新BBWBBWBBWBBW| 97香蕉久久夜色精品国产| 91精品视频在线| 婷婷综合五月天| 99日韩精品| 国产一级A片免费播放| 蜜桃视频网| 狠狠干在线视频| 久久精品视频网站| 中文字幕在线视频无码| 国产中文人人国际| 日本无码一区二区三区| 中文无码播放| h视频在线观看网站| 精品蜜桃秘一区二区三区观看| 欧美亚洲一区| 真实国产乱子伦毛片| 欧美搡BBBB搡BBB| 九九热在线精品视频| 亚洲黄色天堂| 狠狠地操| 国产XXXXX| 国产麻豆精品成人毛片| 亚洲第一色婷婷| 五月天四房播播| 国产视频一区二区在线| 在线免费黄色视频| 日老女人的逼| 青青草成人在线观看| 特级特黄AAAA免费看| 影音先锋女人aV鲁色资源网站 | 久久精品一区二区三区四区 | 色婷婷久综合久久一本国产AV| 波多野结衣av一区| 黄色美女毛片| 一级毛AA片| 国产一区二区三区视频| 亚洲欧美视频在线观看| а√最新版天堂中文在线| 天天综合精品| 久久精品www人人爽人人| 一级Aa视频免费看| 俺来也俺去也www色官网| 偷拍-91爱爱| 日韩动态视频| 成人自拍电影| 日本大香蕉在线视频| 51色片| 国产视频一区二区在线| 91精品婷婷国产综合久久韩漫| 日韩成人视频在线观看| 欧美亚洲一区| 色噜噜狠狠色综无码久久合欧美| 中文字幕中文字幕| jizzjizzjizzjizz| 亲子乱AⅤ一区二区三区| 亚洲AV无码精品| 中文字幕精品无码一区二区| 国产日韩在线视频| 黄片久久久| 久草热在线| 欧美精品一二三区| 久久人爽| 久射久| а√最新版天堂中文在线| 18禁网站免费| 久久久人妻熟妇精品无码蜜桃 | 亚洲国际中文字幕在线| 大黑逼网| 摸BBB槡BBBB搡BBB,,,,, | 香蕉视频色| 国产又爽又黄免费网站校园里| 成人香蕉网| 強姦婬片A片AAA毛片Mⅴ| 美日韩无码| 人妻互换一二三区免费| 天堂中文在线资源| 中文字幕无码在线观看| 爆乳一区二区三区AV| 亚洲福利视频97| 日韩码线观看视频| 欧美高清在线综合| 国产亚洲色情| 黄色网页免费观看| 人人摸人人操人人爱| 伊人大香蕉精品| 亚洲无码色色| 亚洲最大黄色视频| 中文字幕+乱码+中文字幕电视剧| 免费在线看黄色| 毛片小说| 另类老妇videos另类| 无码精品人妻一区二区三刘亦菲| 亚洲欧美人妻| 亚洲综合区| 成人夜间视频| 日韩欧美国产黄色电影| 日韩无码人妻系列| www.av在线播放| 婷婷丁香色| 91人妻人人爽人人澡人人爽| 亚洲成人免费在线观看| 无码视频网| 一级a片免费看| 青青草五月天色婷婷丁香| 黑人干亚洲| 日韩电影免费在线观看| 国产婬片一级A片AAA毛片AⅤ| 蜜臂AV| 黄色a片视频| 人人插人人射| 欧美激情无码一区二区三区张丽| 三级片网站大全| 色综合99| 久草中文在线| 亚州一级成人片| 韩国无码成人电影啊荒| 日韩十八禁网站| 在线看黄网站| 免费在线观看AV| 精品久久久久久AV2025| 夜夜操天天| 一本到在线视频| 亚洲欧美国产毛片在线| 亚洲综合自拍| 日韩性爱视频在线播放| 国产精品在线看| 九九精品视频在线观看| 欧美三级在线视频| 亚洲成人少妇老妇a视频在线| 蜜桃无码一区| 激情久久AV一区AV二区AV三区| 97日韩| 超碰免费在线观看| 夜色321| 91丝袜在线| 国产v在线| 影音先锋成人网| 97中文字幕| 亚洲视频欧洲视频| 五月丁香电影| 久久精品国产99精品国产亚洲性色 | 一本大道东京热AV| 伊人久久免费| 亚洲无码视频在线| 国产最新AV| 这里只有精品久久| 黄色欧美视频| 大香蕉伊人电影| 日韩无码视频网站| 一区二区三区毛片| 大香蕉在线视频75| 日韩无码AV一区二区三区| 亚洲久草| 亚洲黄色天堂| 国产精品扒开腿做爽爽爽视频| 国产美女av| 亚洲中文字幕在线观看视频| 高清无码高潮| 狠狠狠狠狠狠狠| 日韩三区| 无码国产99精品久久久久网站| 91精品丝袜久久久久久久久粉嫩| 高清无码网站| 中文字幕在线视频日本| 亚洲黄色小视频| 一区二区三区视频| 制服丝袜在线视频| 四川乱子伦95视频国产| 国产精品久久久无码专区| 亚洲无码专区视频| 2021无码| 中字幕视频在线永久在线观看免费 | 日韩黄色三级片| 操b视频在线免费观看| 日韩大香蕉在线| 久久久久久久| a√天堂资源中文8| 激情久久婷婷| 日韩老熟妇| 国产麻豆精品成人免费视频| 欧美综合激情| 无码专区av| 成全在线观看高清的| 中文字幕人妻精品一区| 91无码一区二区三区| 97超碰人妻| 国产女人18毛片水18精品软件| 亚洲无码在线视频观看| 欧美激情视频一区二区三区不卡| 99成人在线视频| 六月激情婷婷| 综合久久久久| 国产日韩欧美在线播放| 粉嫩AV蜜乳AV蜜臀AV蜂腰AV | 97超碰中文字幕| 欧美日韩国产一区二区| 无码AV天堂| 国产aⅴ激情无码久久久无码| 91av视频| 激情综合视频| 亚洲日韩中文字幕在线| 黄色视频在线观看网站| 高清无码高潮| 精品69| 亚洲图片在线播放| 奇米狠狠色| 日韩最新无码发布| 婷婷丁香五月综合| 国产成人视频在线播放| 亚洲成人性爱网站| 亚洲第一色在线| 97久久一区二区| 青青操国产乱伦| 国产成人精品777777| 亚洲Japanese办公室制服| 久久国产亚洲| 国产美女裸体网站| 日屄电影| 日本色综合| 日本黄色视频免费| 国产精品毛片| 日本中文字幕亚洲| 成人精东影业JDAV3密友| 一卡二卡三卡| 久久久久国产一区二区三区四区| 日韩高清无码网站| 搞搞网日本9| 韩国无码观看| 国产亚洲aⅴ| 无码99| 国产福利美女网站| 免费黄色视频网站| 高清不卡一区二区| 成人一区二区三区四区| 久久成人在线| 欧美成人视频18| 成人在线A片| 亚洲福利久久| 国产精品VA| av福利在线观看| 插菊花综合网3| 欧美性受XXXX黑人XYX性爽一 | 中文字幕亚洲在线| 久久精品黄色| 天天干天天上| 日本久久网站| 日韩少妇无码| 日本欧美久久久久免费播放网| 天堂AV在线免费观看| 久久国产精品伦子伦| 日韩国产中文字幕| 一本色道久久综合无码人妻四虎| 亚洲无码免费看| 手机av在线观看| 高清无码不卡AV| 欧美国产日本| 国产免费AV在线观看| 日韩美女免费性爱视频| 91在线免费视频观看| 亚洲七区| 国内精品国产成人国产三级| 在线内射视频| 天堂无码视频在线播放| 国产在线一区二区三区| av東熱激情东京热| 99re视频在线观看| av在线中文| 日韩一区二区免费看| 日韩国产中文字幕| 久草视频这里只有精品| 国内一级A片| 91久久国产性奴调教| 唐嫣一级婬片A片AAA| 五月天婷婷丁香| 亚洲成人大香蕉| 亚洲砖区| 国产高清免费视频| 国产无套进入免费| 操操插插| 国产精品免费在线| 91草视频| 夜夜骚av.一区二区三区四区| 中文字幕在线看| 亚洲视频中文字幕在线观看| 99久久精品国产成人一区二区 | 美女裸体视频网站| 日韩AV小说| 人人插人人射| 熟女人妻人妻の视频| yw在线观看| 中文字幕+乱码+中文乱码电影 | 黄色操逼视频| 欧美日韩中文字幕| 欧美中文字幕| 欧美色图狠狠操| 久久青草视频| 国产一区二区视频在线观看| 777三级| 久久草视频在线播放| 亚洲一级二级| 精品一区二区三区免费毛片| 无码秘蜜桃吴梦梦| 婷婷视频导航| 亚洲成人av| 久久午夜无码鲁丝片午夜精| 国产午夜激情视频| 51嘿嘿嘿国产精品伦理| 粉嫩AV蜜乳AV蜜臀AV蜂腰AV | 蜜桃视频一区二区| 免费二区| 大香蕉草久| 午夜午夜福利理论片在线播放 | 一级黄片免费看| 美日韩无码| 午夜精品久久久| 色逼逼网| 凸凹翔田千里无码| 五月婷婷六月丁香| a免费视频| 亚州天堂| 3d啪啪动漫| 五月天四房播播| 欧美又粗又大AAA片| 婷婷激情综合| 怡红院av| 久久99老妇伦国产熟女| 一级二级三级视频| 男人视频网站| 天堂成人av| 国产性爱网站| 亚洲精品一区二区三区| www.91在线| 精品久久电影| 黄色成人网址| 婷婷福利导航| 夜夜爽7777精品国产三级| 日韩操逼av| av大片在线观看| 欧美日逼视频| 久久er| 国产精品欧美7777777| 一级黄色片在线观看| 不卡的av在线| 新版欧美内射大全| 91麻豆精品无码人妻| 欧美老女人的逼| 人妻丰满熟妇| 永久免费不卡在线观看黄网站| 人妻少妇偷人精品无码免费| 黄色视频网站在线| 日韩一级黄色| 国产在线拍揄自揄拍无码网站新闻 | 国产欧美视频在线| a片免费在线观看| 亚洲国产成人精品女人| 午夜成人av| 中文字幕免费看| 91中文字幕+乱码| 中文字幕一区二区三区四区五区六区 | 懂色在线精品分类视频| 成人激情视频| 日韩黄色三级片| 欧美9999| 特级西西人体大胆无码| 久草综合视频| 免费成人毛片| 亚洲无码福利视频| 十八禁免费网站| AA片免费网站| 污污污www精品国产网站| 91资源在线| 99无码视频|