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

您的位置:首頁技術文章
文章詳情頁

springboot2.x整合shiro權限框架的使用

瀏覽:55日期:2023-04-27 13:58:31

在實際項目中,經常需要用到角色權限區分,以此來為不同的角色賦予不同的權利,分配不同的任務。比如,普通用戶只能瀏覽;會員可以瀏覽和評論;超級會員可以瀏覽、評論和看視頻課等;實際應用場景很多。毫不夸張的說,幾乎每個完整的項目都會設計到權限管理。

在 Spring Boot 中做權限管理,一般來說,主流的方案是 Spring Security ,但是由于 Spring Security 過于龐大和復雜,只要能滿足業務需要,大多數公司還是會選擇 Apache Shiro 來使用。

一般來說,Spring Security 和 Shiro 的區別如下:

Spring Security Apache Shiro 重量級的安全管理框架 輕量級的安全管理框架 概念復雜,配置繁瑣 概念簡單、配置簡單 功能強大 功能簡單

因此,這篇文章,阿淼首先會帶大家了解 Apache Shiro ,然后和大家一起將 shiro 權限框架整合到 SpringBoot 中,以達到快速的實現整合權限管理的功能。

走進 Apache Shiro

官網認知

照例又去官網扒了扒介紹:

Apache Shiro™ is a powerful and easy-to-use Java security framework that performs authentication, authorization, cryptography, and session management. With Shiro’s easy-to-understand API, you can quickly and easily secure any application ? from the smallest mobile applications to the largest web and enterprise applications.Apache Shiro™是一個強大且易用的Java安全框架,能夠用于身份驗證、授權、加密和會話管理。Shiro擁有易于理解的API,您可以快速、輕松地獲得任何應用程序——從最小的移動應用程序到最大的網絡和企業應用程序。

簡而言之,Apache Shiro 是一個強大靈活的開源安全框架,可以完全處理身份驗證、授權、加密和會話管理。

Shiro能到底能做些什么呢?

驗證用戶身份 用戶訪問權限控制,比如:1、判斷用戶是否分配了一定的安全角色。2、判斷用戶是否被授予完成某個操作的權限 在非 Web 或 EJB 容器的環境下可以任意使用Session API 可以響應認證、訪問控制,或者 Session 生命周期中發生的事件 可將一個或以上用戶安全數據源數據組合成一個復合的用戶 “view”(視圖) 支持單點登錄(SSO)功能 支持提供“Remember Me”服務,獲取用戶關聯信息而無需登錄 ···

為什么今天還要使用Apache Shiro?

對此,官方給出了詳細的解釋:http://shiro.apache.org/

自2003年以來,框架環境發生了很大變化,因此今天仍然有充分的理由使用Shiro。實際上有很多原因。Apache Shiro是:

易于使用 -易于使用是該項目的最終目標。應用程序安全性可能非常令人困惑和沮喪,并被視為“必要的邪惡”。如果您使它易于使用,以使新手程序員可以開始使用它,那么就不必再痛苦了。 全面 -Apache Shiro聲稱沒有其他具有范圍廣度的安全框架,因此它可能是滿足安全需求的“一站式服務”。 靈活 -Apache Shiro可以在任何應用程序環境中工作。盡管它可以在Web,EJB和IoC環境中運行,但并不需要它們。Shiro也不要求任何規范,甚至沒有很多依賴性。 具有Web功能 -Apache Shiro具有出色的Web應用程序支持,使您可以基于應用程序URL和Web協議(例如REST)創建靈活的安全策略,同時還提供一組JSP庫來控制頁面輸出。 可插拔 -Shiro干凈的API和設計模式使它易于與許多其他框架和應用程序集成。您會看到Shiro與Spring,Grails,Wicket,Tapestry,Mule,Apache Camel,Vaadin等框架無縫集成。 受支持 -Apache Shiro是Apache Software Foundation(Apache軟件基金會)的一部分,該組織被證明以其社區的最大利益行事。項目開發和用戶群體友好的公民隨時可以提供幫助。如果需要,像Katasoft這樣的商業公司也可以提供專業的支持和服務。

Shiro 核心概念

Apache Shiro 是一個全面的、蘊含豐富功能的安全框架。

下圖為描述 Shiro 功能的框架圖:

springboot2.x整合shiro權限框架的使用

如圖所示,功能包括:

Authentication(認證):用戶身份識別,通常被稱為用戶“登錄” Authorization(授權):訪問控制。比如某個用戶是否具有某個操作的使用權限。 Session Management(會話管理):特定于用戶的會話管理,甚至在非web 或 EJB 應用程序。 Cryptography(加密):在對數據源使用加密算法加密的同時,保證易于使用。

并且 Shiro 還有通過增加其他的功能來支持和加強這些不同應用環境下安全領域的關注點。

特別是對以下的功能支持:

Web支持:Shiro 提供的 Web 支持 api ,可以很輕松的保護 Web 應用程序的安全。 緩存:緩存是 Apache Shiro 保證安全操作快速、高效的重要手段。 并發:Apache Shiro 支持多線程應用程序的并發特性。 測試:支持單元測試和集成測試,確保代碼和預想的一樣安全。 “Run As”:這個功能允許用戶假設另一個用戶的身份(在許可的前提下)。 “Remember Me”:跨 session 記錄用戶的身份,只有在強制需要時才需要登錄。

注意: Shiro 不會去維護用戶、維護權限,這些需要我們自己去設計/提供,然后通過相應的接口注入給 Shiro

使用案例 Demo

1.新建 maven 項目

為方便我們初始化項目,Spring Boot給我們提供一個項目模板生成網站。

1、打開瀏覽器,訪問:https://start.spring.io/

2、根據頁面提示,選擇構建工具,開發語言,項目信息等。

2.導入 springboot 父依賴

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.2.RELEASE</version></parent>

3.相關 jar 包

web 包

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>

shiro-spring 包就是此篇文章的核心

<dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-spring</artifactId><version>1.4.0</version></dependency>shiro 注解會用到 aop<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency>數據庫相關包使用的是mybatisplus<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.12</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.1.0</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.1.0</version></dependency><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.0</version></dependency>

4.數據庫

建表語句在項目中有,項目地址: https://github.com/mmzsblog/mmzsblog-util

5.自定義 realm

public class MyShiroRealm extends AuthorizingRealm {@Autowiredprivate UserService userService;@Autowiredprivate RoleService roleService;@Autowiredprivate PermissionService permissionService;@Overrideprotected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo();// HttpServletRequest request = (HttpServletRequest) ((WebSubject) SecurityUtils// .getSubject()).getServletRequest();//這個可以用來獲取在登錄的時候提交的其他額外的參數信息String username = (String) principals.getPrimaryPrincipal();// 受理權限// 角色Set<String> roles = new HashSet<String>();Role role = roleService.getRoleByUserName(username);System.out.println(role.getRoleName());roles.add(role.getRoleName());authorizationInfo.setRoles(roles);// 權限Set<String> permissions = new HashSet<String>();List<Permission> querypermissions = permissionService.getPermissionsByRoleId(role.getId());for (Permission permission : querypermissions) {permissions.add(permission.getPermissionName());}authorizationInfo.setStringPermissions(permissions);return authorizationInfo;}@Overrideprotected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authcToken)throws AuthenticationException {String loginName = (String) authcToken.getPrincipal();// 獲取用戶密碼User user = userService.getOne(new QueryWrapper<User>().eq('username', loginName));if (user == null) {// 沒找到帳號throw new UnknownAccountException();}String password = new String((char[]) authcToken.getCredentials());String inpass = (new Md5Hash(password, user.getUsername())).toString();if (!user.getPassword().equals(inpass)) {throw new IncorrectCredentialsException();}// 交給AuthenticatingRealm使用CredentialsMatcher進行密碼匹配SimpleAuthenticationInfo authenticationInfo = new SimpleAuthenticationInfo(loginName, user.getPassword(),ByteSource.Util.bytes(loginName), getName());return authenticationInfo;}}

6.shiro 配置類

@Configurationpublic class ShiroConfiguration {private static final Logger logger = LoggerFactory.getLogger(ShiroConfiguration.class);/** * Shiro的Web過濾器Factory 命名:shiroFilter */@Bean(name = 'shiroFilter')public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager) {ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();// Shiro的核心安全接口,這個屬性是必須的shiroFilterFactoryBean.setSecurityManager(securityManager);//需要權限的請求,如果沒有登錄則會跳轉到這里設置的urlshiroFilterFactoryBean.setLoginUrl('/login.html');//設置登錄成功跳轉url,一般在登錄成功后自己代碼設置跳轉url,此處基本沒用shiroFilterFactoryBean.setSuccessUrl('/main.html');//設置無權限跳轉界面,此處一般不生效,一般自定義異常shiroFilterFactoryBean.setUnauthorizedUrl('/error.html');Map<String, Filter> filterMap = new LinkedHashMap<>();// filterMap.put('authc', new AjaxPermissionsAuthorizationFilter());shiroFilterFactoryBean.setFilters(filterMap);/* * 定義shiro過濾鏈 Map結構 * Map中key(xml中是指value值)的第一個’/’代表的路徑是相對于HttpServletRequest.getContextPath()的值來的 * anon:它對應的過濾器里面是空的,什么都沒做,這里.do和.jsp后面的*表示參數,比方說login.jsp?main這種 * authc:該過濾器下的頁面必須驗證后才能訪問,它是Shiro內置的一個攔截器org.apache.shiro.web.filter.authc. * FormAuthenticationFilter */Map<String, String> filterChainDefinitionMap = new LinkedHashMap<>();/* * 過濾鏈定義,從上向下順序執行,一般將 /**放在最為下邊; authc:所有url都必須認證通過才可以訪問; * anon:所有url都都可以匿名訪問 */filterChainDefinitionMap.put('/login.html', 'authc');filterChainDefinitionMap.put('/login', 'anon');filterChainDefinitionMap.put('/js/**', 'anon');filterChainDefinitionMap.put('/css/**', 'anon');filterChainDefinitionMap.put('/logout', 'logout');filterChainDefinitionMap.put('/**', 'authc');shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);return shiroFilterFactoryBean;}/** * 權限管理 */@Beanpublic SecurityManager securityManager() {logger.info('=======================shiro=======================');DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();securityManager.setRealm(MyShiroRealm());// securityManager.setRememberMeManager(rememberMeManager);return securityManager;}/** * Shiro Realm 繼承自AuthorizingRealm的自定義Realm,即指定Shiro驗證用戶登錄的類為自定義的 */@Beanpublic MyShiroRealm MyShiroRealm() {MyShiroRealm userRealm = new MyShiroRealm();userRealm.setCredentialsMatcher(hashedCredentialsMatcher());return userRealm;}/** * 憑證匹配器 密碼驗證 */@Bean(name = 'credentialsMatcher')public HashedCredentialsMatcher hashedCredentialsMatcher() {HashedCredentialsMatcher hashedCredentialsMatcher = new HashedCredentialsMatcher();// 散列算法:這里使用MD5算法;hashedCredentialsMatcher.setHashAlgorithmName('md5');// 散列的次數,比如散列兩次,相當于 md5(md5(''));hashedCredentialsMatcher.setHashIterations(1);// storedCredentialsHexEncoded默認是true,此時用的是密碼加密用的是Hex編碼;false時用Base64編碼hashedCredentialsMatcher.setStoredCredentialsHexEncoded(true);return hashedCredentialsMatcher;}/** * 開啟Shiro的注解(如@RequiresRoles,@RequiresPermissions),需借助SpringAOP掃描使用Shiro注解的類,并在必要時進行安全邏輯驗證 */@Beanpublic AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor() {AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor();authorizationAttributeSourceAdvisor.setSecurityManager(securityManager());return authorizationAttributeSourceAdvisor;}}

7.測試類

@RestControllerpublic class UserController {@PostMapping('login')public String name(String username, String password) {String result = '已登錄';Subject currentUser = SecurityUtils.getSubject();UsernamePasswordToken token = new UsernamePasswordToken(username, password);if (!currentUser.isAuthenticated()) {try {currentUser.login(token);// 會觸發com.shiro.config.MyShiroRealm的doGetAuthenticationInfo方法result = '登錄成功';} catch (UnknownAccountException e) {result = '用戶名錯誤';} catch (IncorrectCredentialsException e) {result = '密碼錯誤';}}return result;}@GetMapping('logout')public void logout() {Subject currentUser = SecurityUtils.getSubject();currentUser.logout();}@RequiresPermissions('role:update')@GetMapping('/role')public String name() {return 'hello';}@RequiresPermissions('user:select')@GetMapping('/role2')public String permission() {return 'hello sel';}}

7.1 登錄測試

數據庫賬號(密碼經過md5加鹽加密)

springboot2.x整合shiro權限框架的使用

springboot2.x整合shiro權限框架的使用

springboot2.x整合shiro權限框架的使用

springboot2.x整合shiro權限框架的使用

springboot2.x整合shiro權限框架的使用

7.2 權限測試

springboot2.x整合shiro權限框架的使用

springboot2.x整合shiro權限框架的使用

8.說明

8.1 無權限時的處理

無權限時自定義了一個異常。所以,權限測試的時候沒有權限就會提示配置的提示語 “沒有權限”。

@ControllerAdvicepublic class ShiroException {@ExceptionHandler(value = UnauthorizedException.class)@ResponseBodypublic String name() {return '沒有權限';}}

8.2 角色權限測試與權限測試相同

權限設置可在shiro配置類中shiro過濾鏈設置,也可用注解方式設置,本文使用注解方式。

8.3 shiro 的 session 和 cache

shiro 的 session 和 cache 管理可以自定義,本文用的是默認的,推薦自定義,方便管理。

小結

Apache Shiro是Java的一個安全框架 Shiro是一個強大的簡單易用的Java安全框架,主要用來更便捷的認證、授權、加密、會話管理、與Web集成、緩存等 Shiro使用起來小而簡單 spring中有spring security ,是一個權限框架,它和spring依賴過于緊密,沒有shiro使用簡單。 shiro不依賴于spring,shiro不僅可以實現web應用的權限管理,還可以實現c/s系統,分布式系統權限管理, shiro屬于輕量框架,越來越多企業項目開始使用shiro.

參考:

http://shiro.apache.org/

https://www.cnblogs.com/joker-dj/archive/2020/04/13/12690648.html

到此這篇關于springboot2.x整合shiro權限框架的使用的文章就介紹到這了,更多相關springboot2.x整合shiro內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
主站蜘蛛池模板: 欧美精品综合在线 | 九色 在线 | 91p在线观看| 亚洲欧美综合精品久久成人 | 成人1区| 色网在线看 | 国内精品视频一区二区三区 | 国产精品久久久久久久久久久久冷 | 免费av在线 | 日本三级电影网站 | 国产一区二区三区在线免费 | 日韩电影免费在线观看中文字幕 | 国产xxxxxxxxxx| 国产欧美一区二区精品婷 | 午夜天堂精品久久久久 | 日韩毛片免费看 | 亚洲国产青草 | 国产免费一区二区 | 91亚洲精品在线观看 | 午夜精品一区二区三区在线观看 | 久久av网| 欧美乱轮| 日韩成人小视频 | 亚洲第一免费看片 | 欧美aaa大片| 欧美日本免费 | 三级成人在线 | 亚洲国产精品一区二区久久 | 伊人久久艹 | 国产精品福利午夜在线观看 | 亚洲永久免费视频 | 精品综合久久 | 亚洲一区在线视频 | 成人理论片 | 国产视频久久久久久久 | 欧美综合在线观看 | 免费在线观看av的网站 | 九九九视频精品 | h片免费观看 | 成年人黄色免费视频 | 久久久精品| 一级篇| 97人人草| www日本在线 | 国产麻豆乱码精品一区二区三区 | 久久精品欧美一区二区三区不卡 | 精品一区二区久久 | 欧美日韩在线观看一区二区 | 国产在线1| 欧美成人精品一区二区 | 91精品国产综合久久久久久丝袜 | 91大神免费在线观看 | 影音先锋亚洲资源 | 色欧美片视频在线观看 | 欧美视频第一页 | 91亚洲高清 | 日韩在线观看中文字幕 | 天天操天天插天天干 | 亚洲视频一区二区三区 | 久久久久久国产精品久久 | 国产精品视频 | 黄色片免费观看网站 | 久久国产香蕉视频 | 久久精品国产99久久久 | 国产在线一区二区 | 精品一区二区三区免费毛片爱 | 成人一区二区在线 | 久久青青操| 日韩欧美一区二区三区免费观看 | 日本一区二区不卡视频 | 国产精品久久久久久久久久东京 | 日韩一区二区在线观看视频 | 青娱乐国产视频 | 一区二区三区精品视频 | 亚洲高清视频一区 | 999在线观看精品免费不卡网站 | 亚洲人成网站999久久久综合 | 亚洲一本| 午夜精品影院 | 久久久久久久久国产精品 | 亚洲国产精品一区 | 精品国精品国产自在久不卡 | 亚洲成人精品在线 | 精品一区二区三区四区视频 | 日本高清视频网站 | 亚洲综合视频 | 亚洲精品久久久久久久久久久 | 日本在线一二 | 日韩三级在线 | 久久99精品久久久久久噜噜 | 久久人体视频 | 亚洲午夜电影 | 日日操操| 久久91| 亚洲精品成人在线 | 免费看黄色一级视频 | 久久久久久久国产精品 | 仙踪林久久久久久久999 | 香蕉视频成人在线观看 | 中文字幕在线精品 | 中文字幕免费在线 | 欧美久久久久久久久久 | 成人资源在线观看 | 在线一级片 | 超碰一区 | 亚洲精品久久久久久久久久久久久 | 美女视频黄色免费 | 久久综合久久受 | 久草日本 | 国产精品自拍视频网站 | 粉嫩高清一区二区三区精品视频 | 久久久99日产 | 国产女爽爽视频精品免费 | 欧美一区不卡 | 操人网 | 欧美一区二区三区在线观看 | 色综合天天 | 国精产品99永久一区一区 | 99在线精品视频 | 日本精品一区二区三区在线观看视频 | 欧美三级在线 | 夜夜撸av| 在线日韩视频 | 成人a视频 | 天天操狠狠操 | 成人一区二区三区久久精品嫩草 | 欧美视频网站 | 成年人毛片视频 | 成人在线网址 | 国产午夜手机精彩视频 | 中文在线一区 | 99视频在线免费观看 | 国产区视频在线观看 | 国产成人在线网站 | 亚洲欧美日韩国产综合精品二区 | 日本亚洲欧美 | 国产韩国精品一区二区三区 | 日韩在线精品视频 | 欧美a级成人淫片免费看 | 中国电影黄色一级片免费观看 | 国产亚洲欧美一区二区三区 | 日韩2020狼一二三 | 伊人二区 | 日韩一区二区三区精品 | 国产精品欧美日韩 | 欧美一区二 | 伊人精品 | 久久久久久久国产 | 欧美在线三级 | 一级h片 | 亚洲午夜精品在线观看 | 久久99精品视频 | 一区二区三区四区在线播放 | 精品视频网 | 美女一区二区三区在线观看 | 最新久久精品 | 国产成人亚洲综合 | 欧美日韩一区精品 | 成人一区二区三区 | 在线观看中文 | 久久一区二区精品 | 午夜合集 | 中文字幕亚洲欧美 | 杨门女将寡妇一级裸片看 | 天堂av在线免费观看 | 日本精品在线 | 精品久久久免费视频 | 日韩久草 | 午夜99 | 国产视频久久久久 | 国产精品一区二区在线 | 亚洲国产精品久久久 | 免费国产一区二区 | 国产成人涩涩涩视频在线观看 | 老司机深夜福利在线观看 | 在线日韩视频 | 欧美日韩国产在线 | 国产精品国产 | 国产精品三级久久久久久电影 | av免费网站| 亚洲一区 国产 | 午夜影院在线观看版 | 日韩在线精品视频 | 亚洲国产成人91精品 | 91高清在线| 久久久久久日产精品 | 欧美视频在线免费 | 91麻豆产精品久久久久久 | 亚洲欧美高清 | 久久久久综合狠狠综合日本高清 | 中文字幕在线网址 | 99视频精品 | 国产婷婷在线视频 | 国产第一区二区 | 午夜精品久久久久久久99黑人 | 国产精品视频专区 | 黄色免费网站观看 | 成人一区av | 日韩精品免费看 | 亚洲一级黄色 | 正在播放亚洲 | 亚洲91 | 久久综合久久久 | 黄网在线免费观看 | 狠狠操操操 | 国产成人精品一区二区在线 | 欧美综合国产精品久久丁香 | 国产三级黄色毛片 | 2019天天干 | 国产中文在线 | 在线日韩中文字幕 | 一本色道精品久久一区二区三区 | 欧美韩国日本一区 | 色综合天天综合网国产成人网 | 欧洲毛片 | 日韩精品免费视频 | 日韩视频在线观看 | 日韩 国产 在线 | 99久久这里只有精品 | 欧美午夜精品久久久 | 日韩在线视频免费看 | 欧美精品日韩 | 日韩电影专区 | 亚洲精品自拍 | 国产精品久久久爽爽爽麻豆色哟哟 | 国内在线一区 | 色综久久 | 亚洲欧美aⅴ | 毛片综合 | 久久99精品视频 | 欧美日韩三区 | 男女羞羞视频免费在线观看 | 国产精品久久久久久亚洲调教 | 欧美一区二区免费在线 | 一区二区国产精品 | 欧美自拍网站 | av中文字幕在线播放 | 精品日韩一区二区 | 成人免费视频观看视频 | 久久久久亚洲视频 | 国产精品久久久久aaaa九色 | 久久九九这里只有精品 | 人人爱超碰 | 一级片在线观看 | 日韩欧美国产成人一区二区 | 黑人粗黑大躁护士 | 黄色大片网站在线观看 | 久草精品在线观看 | 日韩精品一二三区 | 91色站| 亚洲一区二区三区四区在线观看 | 久久久国产精品入口麻豆 | 激情六月综合 | 精品国产一区二区三区成人影院 | 日韩久久综合 | 亚洲h视频在线观看 | 国产区精品在线 | 一区二区三区视频免费在线观看 | 99国产精品一区 | 国产精品二区三区 | www.日韩在线视频 | 国产精品第一国产精品 | 男人的天堂久久 | 久久精品不卡 | 色综合天天综合网国产成人网 | 一区不卡 | 99精品不卡 | 国产在线一区观看 | 国产精品第一国产精品 | 看亚洲a级一级毛片 | 一级做a爰片性色毛片 | 日韩中文一区二区三区 | 欧美一级二级视频 | 欧洲成人在线视频 | 精品三级在线观看 | 日韩精品在线观看一区 | 精品久久久久久 | 久久性| 免费日韩 | 91麻豆视频| 综合在线视频 | 日本一本视频 | 在线中文字幕第一页 | 久久久久久久久久久久久久久久久久久 | 国产精品亚洲成人 | 最新国产在线视频 | av大片在线 | 嫩草研究院在线观看入口 | 国产精品一区亚洲二区日本三区 | 精品香蕉视频 | 中文字幕亚洲综合久久久软件 | 日韩一二三区视频 | 麻豆毛片 | 免费特级黄毛片 | 色九九| 在线观看亚洲视频 | 欧美久久精品 | 久久久精品日本 | 在线视频 欧美日韩 | 国产成人午夜视频 | 国产在线视频一区 | 天天草天天 | 久久91视频 | 91av国产视频 | 久草天堂 | 精品九九九 | 中文字幕 在线观看 | 国产日韩精品视频 | 精品在线二区 | 国产成人一区二区 | 国产美女福利在线 | 欧美在线一区二区三区 | 黄色av毛片 | 亚洲精品福利 | 在线精品亚洲 | 欧美日韩国产一区二区 | 国产精品无码专区在线观看 | 亚洲欧美日韩国产 | 国产精品高潮呻吟av久久4虎 | 876av国产精品电影 | 国产精品国产 | 亚洲 中文 欧美 日韩 在线观看 | 一区二区免费看 | 日韩2020狼一二三 | 国产精品视频一区二区三区 | √新版天堂资源在线资源 | 亚洲一区精品在线 | 亚洲区在线 | 99视频精品 | 午夜不卡视频 | 黄色影视网址 | 国产亚洲二区 | 中文字幕精品一区 | 污色视频在线观看 | 欧美激情a∨在线视频播放 中文字幕网在线 | 国产性×xxx盗摄xxxx | 九九亚洲精品 | 久久免费99精品久久久久久 | 精品久久久久久亚洲精品 | 国产日韩一区二区 | 久草久 | 国产成人精品亚洲日本在线观看 | 亚洲三级av| 久久久久久久国产 | 国产精品一区二区久久 | 成人在线国产 | 国产亚洲一区二区在线 | 在线不卡视频 | 一级性大片 | 免费一二区 | 伊人无码高清 | 在线日韩欧美 | 久久精品久久久久久 | 国产精品99久久久久久www | 色狠狠一区 | 亚洲国产高清高潮精品美女 | 日韩天堂| 欧美自拍视频 | 成人一区二区三区在线观看 | 欧美日韩一区二区三区在线观看 | 亚洲国产天堂久久综合 | 成人欧美一区二区三区白人 | 精品亚洲一区二区三区 | 五月综合婷| www.黄色片视频 | 精品在线一区二区三区 | 国产精品国产精品国产专区不蜜 | 精品久久久久久久久久久久久久 | 日韩中文在线 | 奇米影视奇米色777欧美 | www.一级电影 | 国产精品美女久久久久久久久久久 | 国产成人精品一区二区 | 久久国产精品免费一区二区三区 | 91色在线 | 中文字幕一区二区三区不卡 | 中文一区 | 亚洲免费精品网站 | 久久综合九色综合欧美狠狠 | 一区二区三区国产好 | 一区二区三区四区不卡视频 | 国产老头老太作爱视频 | 国产在线乱 | 蜜桃av一区二区三区 | 中文字幕在线免费看 | 国产午夜精品一区二区 | 大香伊蕉在人线视频777 | 天堂精品 | 亚洲欧美激情在线 | 久久6| 亚洲一区精品在线 | 午夜精品视频在线观看 | 亚洲国产成人在线 | 日韩欧美一区二区三区四区 | 久久99热精品免费观看牛牛 | www.久草.com | 亚洲免费国产视频 | 精品久久久久久久人人人人传媒 | 国产色 | 国产日韩免费 | 欧美中文在线 | 午夜激情免费看 | 精品国产乱码久久久久久1区2区 | 成人在线观看免费视频 | 欧美一级播放 | 在线看一区二区 | 亚洲一区二区在线 | 精品久久一区二区三区 | 国产成人一区 | 国产精品高清在线 | 日本高清中文字幕 | 在线看片福利 | 91精品国产高清久久久久久久久 | 久久久久久久国产 | 亚洲精品在线视频观看 | 国产色片在线 | 国产欧美精品一区二区三区 | 黄色一级电影 | 国产伦精品一区二区三区在线 | 极品久久 | 毛片在线免费 | 国产精品久久久久久久久久久久久久久久 | 精品国偷自产国产一区 | 国产精品久久久久9999赢消 | 视频二区| 九九热这里只有精品在线观看 | 免费成人在线网站 | 免费观看亚洲 | 精品国产乱码久久久久久1区2区 | 天天操天天插天天干 | 亚洲日韩中文字幕一区 | 一区二区三区回区在观看免费视频 | 久久久中文字幕 | 亚洲网色| 久久88| 日韩在线观看视频一区二区 | 久久这里只有精品免费 | 国产中文字幕在线播放 | 日本 欧美 国产 | 自拍视频在线播放 | 亚洲国产中文字幕 | 欧美99 | 欧美三级免费观看 | 精品免费久久 | 精品在线一区二区 | 欧美激情一区二区三区 | 欧美日韩在线观看中文字幕 | 国产做a爱片久久毛片 | 欧美在线一二三 | 大伊人久久 | 欧美性猛交一区二区三区精品 | 亚洲日韩成人 | 精品亚洲一区二区三区 | 亚洲视频在线播放 | 久久91 | 国产精品无码久久久久 | 欧美日韩国产一区二区三区在线观看 | 欧美精品一区二区三区一线天视频 | 久久久.com | 日韩亚洲 | 久久久久久免费毛片精品 | 一区二区三区视频在线免费观看 | 亚洲欧美国产另类 | 国产精品成人一区二区 | 亚洲一区二区在线视频 | 在线视频国产一区 | 久久三区| 日韩靠逼| 欧美一级黄 | 久久免费视频观看 | 国产综合精品一区二区三区 | 免费a视频 | 日韩一区二区三区在线看 | 欧美日韩国产精品 | 日韩激情视频一区 | 日本天天操| 亚洲久草视频 | 国外成人在线视频网站 | 欧美日韩在线播放 | 亚洲一区二区三 | 国产在线视频一区二区 | 日本在线观看 | 中文字幕在线视频观看 | 久久午夜精品 | 免费观看特级毛片 | 久久亚洲一区 | 国产精品美女久久久久久久久久久 | 色黄视频在线观看 | 久草在线青青草 | 欧美视频在线播放 | av香港经典三级级 在线 | 日韩av一区二区在线观看 | 日韩欧美一级 | 天堂精品一区二区三区 | 在线视频亚洲 | 天天插天天干 | 伊人春色成人 | 成人欧美一区二区三区视频xxx | 精品国产乱码久久久久久1区2区 | 久国产精品视频 | 精品在线一区二区三区 | 久久精品视 | 成人精品视频在线观看 | 久久久久亚洲一区二区三区 | 日韩精品一区二区三区视频播放 | 国产福利片在线观看 | 91精品国产综合久久福利软件 | 在线亚洲一区 | 中文字幕亚洲一区二区三区 | 久久久久国产精品视频 | 天天夜夜操| segui88久久综合9999 | 久久久久亚洲国产 | 一区二区三区精品 | 亚洲男人网 | 91精品国产综合久久久久久蜜月 | av一级毛片 | 久久91精品 | 久久国产久| 岛国av一区| 亚洲国产午夜 | 国产成人99久久亚洲综合精品 | 国产精品jizz在线观看麻豆 | 男人的天堂久久 | 国产成人av在线 | av免费黄色 | 亚洲综合激情网 | 天天干夜夜骑 | 日韩激情网| 亚洲日韩中文字幕一区 | 亚洲国产精品久久久 | 午夜三区 | 91在线免费视频 | 美女视频一区 | 色天天综合久久久久综合片 | 国产日韩一区二区三区 | 91在线最新 | 日韩精品99久久久久中文字幕 | 九九国产 | 久久成人18免费网站 | 国产精品婷婷午夜在线观看 | 亚洲 中文 欧美 日韩 在线观看 | 性一级录像片片视频免费看 | 九九精品视频在线观看 | 可以在线观看的av网站 | 91中文在线观看 | 欧美视频在线免费看 | 91精彩视频在线观看 | 免费不卡视频 | 国产精品91视频 | 亚洲男人的天堂在线播放 | 毛片在线免费 | 91久久国产综合久久蜜月精品 | 日韩精品视频在线播放 | 成人一级片在线观看 | 国产精品视频免费播放 | 国产另类ts人妖一区二区 | 色综久久 | 日韩免费片 | 中文字幕 国产精品 | 久久精品国产99国产精品 | 视频在线一区 | 欧美综合激情 | 99久久久成人国产精品 | 久久99国产精品久久99大师 | 中文精品在线 | 精品视频在线观看 | 在线看成人片 | 国产美女精品视频免费观看 | 日日干天天操 | 国产欧美精品一区二区三区 | 日韩精品一区二区在线观看 | 欧美亚洲日本 | 亚洲精品久久久久国产 | 在线观看免费av网 | 成人欧美一区二区三区白人 | www国产在线观看 | 日韩综合在线 | 亚洲一区二区在线看 | 成人欧美一区二区三区在线播放 | 欧美成人精品 | 91av在线不卡 | 亚洲欧洲日韩 | 中文久久 | 啊v视频| 免费在线一区二区 | 久久精品色欧美aⅴ一区二区 | 久久伊人中文字幕 | 天天操免费| 国产精品黄网站在线观看 | www.黄网 | 岛国av免费| 国产 在线 | 日韩 | 亚洲中国精品精华液 | 黄色大片观看 | 欧美日韩一区二区三区四区 | 欧美二区三区视频 | 国产精品久久久久久久久免费丝袜 | 亚洲三区在线观看 | 中文字幕日韩一区二区不卡 | 成人高清av| 国产日韩欧美一区 | 欧美怡红院视频一区二区三区 | 亚洲天堂久久 | 日韩精品在线一区 | 中文字幕最新在线 | 亚洲视频中文字幕 | 亚洲乱码国产乱码精品精的特点 | 亚洲精品一区二区三区蜜桃下载 | 亚洲精品一区二区三区蜜桃久 | 在线播放高清视频www | 亚洲精品一区二区三区 | 午夜黄色影院 | 国产精品久久久久无码av | 久久久久久一区 |