亚洲成人一区在线观看_天堂网www_国产精品久久9_中文在线播放_伊人天天_久久精品久久久精品美女

當前位置:首頁 > 網站舊欄目 > 學習園地 > 設計軟件教程 > acegi參考手冊(v1.0.4)[譯]-第六章 通用認證服務

acegi參考手冊(v1.0.4)[譯]-第六章 通用認證服務
2010-01-13 23:25:27  作者:  來源:
第六章. 通用認證服務
6.1. Mechanisms, Providers 和 Entry Points
如果你使用Acegi Security提供的認證方法,那么通常你需要配置一個web filter,一個AuthenticationProvider
以及AuthenticationEntryPoint。在本節我們將要瀏覽一個示例應用,它需要支持基于form的認證(例如提供給用戶登錄的HTML頁面)以及基礎認證(例如web service或者類似的可以訪問受保護資源)。
 
web.xml中,這個應用需要一個單獨的Acegi Security filter來使用FilterChainProxy。幾乎所有的Acegi Security應用都有一個類似的項,看起來象下面這樣:
 
 
xml 代碼
 
  1. <filter>  
  2. <filter-name>Acegi Filter Chain Proxy</filter-name>  
  3. <filter-class>org.acegisecurity.util.FilterToBeanProxy</filter-class>  
  4. <init-param>  
  5. <param-name>targetClass</param-name>  
  6. <param-value>org.acegisecurity.util.FilterChainProxy</param-value>  
  7. </init-param>  
  8. </filter>  
  9. <filter-mapping>  
  10. <filter-name>Acegi Filter Chain Proxy</filter-name>  
  11. <url-pattern>/*</url-pattern>  
  12. </filter-mapping>  
 
上述聲明將使每個web請求都要經過Acegi SecurityFilterChainProxy。正如在本手冊的filter那節中所說,FilterChainProxy是一個通用類,它使得web請求按照URL模式被發送到不同的filter。那些被委派的filter是由application context管理的,因此它們可以享受依賴注射的好處。我們來看看在你的application contextFilterChainProxy的定義會是什么樣的:
 
 
xml 代碼
 
  1. <bean id="filterChainProxy" class="org.acegisecurity.util.FilterChainProxy">  
  2. <property name="filterInvocationDefinitionSource">  
  3. <value>  
  4. CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON   
  5. PATTERN_TYPE_APACHE_ANT   
  6. /**=httpSessionContextIntegrationFilter,logoutFilter,authenticationProcessingFilter,basicProcessingFilter,securityContextHolderAwareRequestFilter,</value>  
  7. </property>  
  8. </bean>  
 
在內部,Acegi Security會使用PropertyEditor來將上述XML片段中的字符串轉化為一個FilterInvocationDefinitionSource對象。在這個階段需要注意的是,一系列的filter會按照定義的順序運行,并且這些filter實際就是application context中的bean<bean id>。所以,在我們的例子中,會在application context出現另外一些bean,它們會被命名為httpSessionContextIntegrationFilter, logoutFilter 等。Filter出現的順序會在手冊中filter那一節討論,雖然上述的例子中它們是正確的。
 
在我們的例子中,我們使用了AuthenticationProcessingFilterBasicProcessingFilter。它們分別對應了基于form的認證和BASIC HTTP header-based認證的“認證機制”(我們在手冊的前面部分討論了認證機制扮演的角色)。如果你既不使用form也不使用BASIC認證,就不需要定義這些bean了。取而代之的是你要定義對應你所需要的認證環境的filter,例如DigestProcessingFilter 或者CasProcessingFilter。請對照手冊中對應的章節來了解如何配置這些認證機制。
 
讓我們回憶一下,在HttpSessionContextIntegrationFilter中保存了每個HTTP session調用中的SecurityContext。這意味著認證機制只會在principal最初嘗試認證的時候被使用一次。在余下的時間內,認證機制只是靜靜的待在那里,將請求發往filter鏈中的下一個filter。這個基于實際的需求源于這樣的一個事實,很少有認證實現在每一個,每一次的調用的時候都會進行認證(BASIC認證是一個值得注意的例外),但是如果一個pricipal在最初的認證步驟之后帳號被取消了,或者被禁用了,或者被修改了(例如GrantedAuthority[]中增加或者減少)會怎么樣呢?讓我們來看看現在這些情況是如何處理的。
 
前面已經介紹了安全對象的主要認證provider AbstractSecurityInterceptor。這個類需要能夠訪問一個AuthenticationManager。它同時有個可選配置可以設定一個認證對象每次安全對象調用的時候是否需要重新認證。如果Authentication.isAuthenticated()返回true,那么它默認在SecurityContextHolder中的認證對象是已認證的。這樣做對于提高性能是非常好的,但是對于即時的認證驗證是不理想的。在這樣的情況下你可能需要將AbstractSecurityInterceptor.alwaysReauthenticate屬性設置為true
 
你可能會問自己“這個AuthenticationManager是什么?”我們之前沒有見過它,但是我們曾經討論過AuthenticationProvider的概念。非常簡單,AuthenticationManager負責在AuthenticationProvider鏈之間傳遞請求。它非常象我們之前討論過的filter鏈,雖然有一些不同。Acegi Security只提供了一個AuthenticationManager實現,因此讓我們看看對于我們這章的例子,它是如何配置的:
 
xml 代碼
 
  1. <bean id="authenticationManager" class="org.acegisecurity.providers.ProviderManager">  
  2. <property name="providers">  
  3. <list>  
  4. <ref local="daoAuthenticationProvider"/>  
  5. <ref local="anonymousAuthenticationProvider"/>  
  6. <ref local="rememberMeAuthenticationProvider"/>  
  7. </list>  
  8. </property>  
  9. </bean>  
 
在這個時候,可能值得提到的是你的認證機制(通常是filter)也被注入了一個AuthenticationManager的引用。所以和認證機制都會使用上述的ProviderManager來輪詢一系列的AuthenticationProvider
 
在我們例子中有三個provider。它們按照上述的順序調用(使用list而不是set來顯示是按照順序調用的),每個provider都能夠嘗試認證,或者僅僅返回一個null來跳過認證。如果所有的實現都返回nullProviderManager會拋出一個相應的異常。如果你想了解更多chaining providers的信息,請參閱ProviderManagerJavaDoc
 
authentication mechanism使用的那些provider有時候是可以互換的,而有時候它們又依賴于特定的authentication mechanism。例如,DaoAuthenticationProvider只需要一個基于字符串的用戶名和密碼。若干個認證機制會產生基于字符串的用戶名和密碼的集合,包括(但不限于)BASIC form 認證。同時,有些認證機制會產生一個只能和特定類型的AuthenticationProvider交互的認證請求對象。一個這種一對一映射的例子是JA-SIG CAS,它使用service ticket的概念,只能被Common Authentication Services CasAuthenticationProvider認證。一個更加深入的一對一映射的例子是LDAP認證機制,它只能由LdapAuthenticationProvider處理。這種特定的對應關系在每個類的JavaDoc以及在本手冊的特定認證方法章節中有詳細說明。你不用擔心這些實現的細節,因為如果你忘記注冊一個合適的provider,你在嘗試認證時只會收到一個ProviderNotFoundException異常。
 
當你在FilterChainProxy中正確配置了認證機制,并且確保注冊了對應的AuthenticationProvider,你的最后一步是配置一個AuthenticationEntryPoint。回憶一下早先我們討論過的ExceptionTranslationFilter的角色,當一個基于HTTP的請求收到一個HTTP頭或者一個HTTP重定向以開始認證時它被使用。繼續我們早先的例子:
 
xml 代碼
 
  1. <bean id="exceptionTranslationFilter" class="org.acegisecurity.ui.ExceptionTranslationFilter">  
  2. <property name="authenticationEntryPoint"><ref  
  3. local="authenticationProcessingFilterEntryPoint"/></property>  
  4. <property name="accessDeniedHandler">  
  5. <bean class="org.acegisecurity.ui.AccessDeniedHandlerImpl">  
  6. <property name="errorPage" value="/accessDenied.jsp"/>  
  7. </bean>  
  8. </property>  
  9. </bean>  
  10. <bean id="authenticationProcessingFilterEntryPoint"  
  11. class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint">  
  12. <property name="loginFormUrl"><value>/acegilogin.jsp</value></property>  
  13. <property name="forceHttps"><value>false</value></property>  
  14. </bean>  
 
注意到ExceptionTranslationFilter需要兩個協作者。第一個AccessDeniedHandlerImpl,使用一個RequestDispatcher導向顯示特定的訪問拒絕的錯誤頁面。我們使用forwad所以SecurityContextHolder中仍然保留principal的詳細信息,這些對于顯示給用戶來說是有用的(在Acegi Security的老版本中,我們依賴rervlet容器來處理403錯誤信息,它缺乏這個有用的上下文信息)。AccessDeniedHandlerImpl同時將會將HTTP頭設置為403,它是訪問拒絕的正式錯誤代碼。至于AuthentionEntryPoint,這里設置如果一個未受認證的principal嘗試執行一個受保護的操作時,我們需要執行那些動作。因為在我們的例子中要使用基于form的認證,因此我們設定AuthenticationProcessinFilterEntryPoint以及登錄頁面的URL。你的應用系統通常只需要一個entry point,并且大多數的認證方法都定義了自己特有的AuthenticationEntryPoint。每個認證方式所對應的特定entry point的詳細情況會在本手冊特定的認證方法章節中介紹。
6.2. UserDetails 和 Associated Types
正如在第一部分中提到的,大多數認證provider要用到UserDetails UserDetailsService 接口。后面那個接口只包含一個方法:
 
 
java 代碼
 
  1. public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException,   
  2. DataAccessException;  
 
 
返回值UserDetails是一個接口,它提供了若干個getter保證返回非null值,例如用戶名,密碼,授予的權限以及用戶是啟用還是禁用狀態。大部分認證provider都會使用一個,即使它在認證判斷過程中實際并不使用用戶名和密碼。通常這些provider只會使用返回的UserDetails中的GrantedAuthority[]信息,因為有些系統(例如LDAP X509 CAS)已經承擔了實際的身份驗證的責任。
 
Acegi Security提供了一個UserDetails的實體類實現-UserAcegi Security用戶需要確定什么時候實現UserDetailsService以及返回什么樣的UserDetails實體類。通常,直接使用User類或者繼承User類就可以了,盡管有一些特殊情況(例如 object relational mappers),需要用戶從頭寫他們自己的UserDetails實現。這種情況也時有發生,用戶只要返回他們正常的代表系統用戶的領域對象就可以了。特別是UserDetails經常被用來存儲額外的principal相關屬性(例如他們的電話號碼以及email地址),這樣它們可以很容易被web視圖使用。
 
特定的UserDetailsService實現起來是很簡單的,它應該很容易由用戶來選擇持久化策略來獲取認證信息。說到這里,Acegi Security確實包含了一些有用的基礎實現,下面讓我們看一下。
 
6.2.1. In-Memory 認證
雖然用戶可以創建一個定制的UserDetailsService實現來從一個持久化引擎中獲取信息,很多應用不需要這種復雜性。特別是如果你正在進行快速原型開發或者剛開始集成Acegi Security,當你不需要花費時間來進行數據庫配置或者寫UserDetailsService的實現。這種情況之下,你有一個簡單的選擇,就是配置InMemoryDaoImpl實現。
 
 
xml 代碼
 
  1. <bean id="inMemoryDaoImpl" class="org.acegisecurity.userdetails.memory.InMemoryDaoImpl">  
  2. <property name="userMap">  
  3. <value>  
  4. marissa=koala,ROLE_TELLER,ROLE_SUPERVISOR   
  5. dianne=emu,ROLE_TELLER   
  6. scott=wombat,ROLE_TELLER   
  7. peter=opal,disabled,ROLE_TELLER   
  8. </value>  
  9. </property>  
  10. </bean>  
 
在上面的例子中,userMap屬性包含了每個用戶的用戶名,密碼,一個授權列表以及一個可選的啟用/禁用關鍵詞。使用逗號分隔。用戶名必須在等號的左側,密碼必須在等號右側第一個出現。啟用和禁用關鍵詞(大小寫敏感)可以出現在第二個或者之后任意位置。剩余的字符串被看作是授予的權限,這些權錢被創建為GrantedAuthorityImpl對象(僅供參考-大多數的應用不需要自定義的GrantedAuthority實現,所以使用默認的實現就可以了)。注意如果一個用戶沒有密碼及或沒有被授予權限,該用戶不會在in-memory 認證庫中創建。
 
InMemoryDaoImpl也提供了一個setUserProperties(Properties)方法,可以允許你用另一個Spring的配置好的bean或者一個外部的properties文件來實例化屬性。你可能要使用SpringPropertiesFactoryBean,它在加載外部屬性文件的時候非常有用。這個setter可能對于有大量用戶的應用,或者開發期配置變更有所助益,但是不要指望使用整個數據庫來處理認證細節。
 
6.2.2. JDBC 認證
也包括了一個從JDBC數據源獲取認證信息的UserDetailsService。使用Spring內部的JDBC,避免了僅僅為了存儲用戶信息而使用復雜的對象關系Common Authentication Services 映射(ORM)。如果你確實使用ORM工具,你可能要寫一個定制的UserDetailsService來重用你已經創建的映射文件。回到JdbcDaoImpl,下面是一個配置的例子:
 
xml 代碼
 
  1. <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
  2. <property name="driverClassName"><value>org.hsqldb.jdbcDriver</value></property>  
  3. <property name="url"><value>jdbc:hsqldb:hsql://localhost:9001</value></property>  
  4. <property name="username"><value>sa</value></property>  
  5. <property name="password"><value></value></property>  
  6. </bean>  
  7. <bean id="jdbcDaoImpl" class="org.acegisecurity.userdetails.jdbc.JdbcDaoImpl">  
  8. <property name="dataSource"><ref bean="dataSource"/></property>  
  9. </bean>  
  10.    
你可能要修改上述的DriverManagerDataSource來使用不同的關系數據庫管理系統。你還可以使用從JNDI獲取的全局數據源,如上的常規Spring選項。不論是使用什么數據庫以及如何獲取數據源,必須使用一個按照dbinit.txt中寫明的數據庫模式。你可以從Acegi Security網站下載這個文件。
 
如果你的默認數據庫模式不能滿足需要,JdbcDaoImpl提供了兩個屬性允許定制SQL語句。如果需要進一步定制,你可以繼承JdbcDaoImpl。請參考JavaDocs獲取詳情,不過請注意這個類并不是為了復雜的自定義繼承而寫的。如果你的需求比較復雜(例如數據庫結構比較特殊或者需要返回一個特定的UserDetails實現),那么你最好寫自己的UserDetailsService實現。Acegi Security提供的基礎實現只是為了典型場景,并沒有提供無限的配置靈活性。
 
6.3. 并行Concurrent Session 處理
Acegi Security能夠限定次數防止一個principal多次并行認證到同一個應用。許多ISV利用這一點來加強授權管理,網管也喜歡這個特性因為可以防止一個用戶名被重復使用。例如,你可以限制“Batman”用戶從兩個不同的session登錄系統。
 
使用并行session支持,你需要在web.xml中增加如下內容:
 
xml 代碼
 
  1. <listener>  
  2. <listener-class>org.acegisecurity.ui.session.HttpSessionEventPublisher</listener-class>  
  3. </listener>  
 
而且,你需要在中FilterChainProxy增加org.acegisecurity.concurrent.ConcurrentSessionFilter to your FilterChainProxyConcurrentSessionFilter需要兩個屬性,sessionRegistry用來指向一個SessionRegistryImpl實例,expiredUrl指向一個session實效時顯示的頁面。
 
當一個HttpSession開始或者結束的時候web.xml HttpSessionEventPublisher發送一個ApplicationEventSpring ApplicationContext。這很關鍵,因為它確保session終止的時候SessionRegistryImpl會收到通知。
 
你還要裝配ConcurrentSessionControllerImpl并在ProviderManager中引用:
 
 
xml 代碼
 
  1. <bean id="authenticationManager" class="org.acegisecurity.providers.ProviderManager">  
  2. <property name="providers">  
  3. <!-- your providers go here -->  
  4. </property>  
  5. <property name="sessionController"><ref bean="concurrentSessionController"/></property>  
  6. </bean>  
  7. <bean id="concurrentSessionController"  
  8. class="org.acegisecurity.concurrent.ConcurrentSessionControllerImpl">  
  9. <property name="maximumSessions"><value>1</value></property>  
  10. <property name="sessionRegistry"><ref local="sessionRegistry"/></property>  
  11. </bean>  
  12. <bean id="sessionRegistry" class="org.acegisecurity.concurrent.SessionRegistryImpl"/>  
6.4. 認證標簽庫
AuthenticationTag只是用來把principalAuthentication.getPrincipal()對象的屬性顯示到web頁面。
 
下面的JSP片段展示了如何使用AuthenticationTag
 
java 代碼
 
  1. <authz:authentication operation="username"/>  
 
這個標簽將會顯示pricipal的名字。這里我們假設Authentication.getPrincipal()是一個UserDetails對象,這在使用典型的DaoAuthenticationProvider時候的一般狀況。

安徽新華電腦學校專業職業規劃師為你提供更多幫助【在線咨詢
主站蜘蛛池模板: 国产伊人久| 午夜在线电影 | 国产亚洲精品成人av久久影院 | 亚洲 欧美 另类 综合 偷拍 | 色黄视频在线观看 | 国产91久久精品一区二区 | 成人1区2区| 日韩中文视频 | 红桃av一区二区 | 国产91 在线播放 | 日韩综合一区 | 日韩综合一区 | 在线观看国产小视频 | 欧美一级在线 | 亚洲综合大片69999 | 欧美专区中文字幕 | 国产精品国色综合久久 | 欧美精产国品一二三区 | 久久在线 | 国产精品视频一区二区三区 | 日韩欧美国产精品综合嫩v 亚洲欧美日韩在线 | 国产91黄色| 免费观看在线午夜影视 | 午夜影皖| 日韩激情视频一区 | 成人在线视频网址 | 国产欧美精品一区二区三区 | 粉嫩在线 | 久久久蜜臀| 日韩欧美在线中文字幕 | 91大神在线看 | 精品国产乱码久久久久久丨区2区 | 国产二区三区 | 日韩视频在线观看一区 | 亚洲福利一区二区 | 九九免费观看全部免费视频 | 国产亚洲精品美女久久久久久久久久 | 欧美一区久久 | 视频一区中文字幕 | 亚洲精品中文字幕 | 91精品国产99久久久久久红楼 | 国产精品毛片一区二区 | 欧美1级| 男女啪啪免费网站 | 久久麻豆视频 | 久久99精品久久久久久噜噜 | 日本久久精品 | 激情网站免费观看 | 久久婷婷国产麻豆91天堂 | 91精品久久久久久久久 | 欧美亚洲三级 | 国产成人精品久久二区二区91 | av综合站| 午夜视频网| 日韩国产 | 国产精品久久久99 | 久久精品国产久精国产 | 亚洲精品在 | 玖玖玖精品视频 | 欧美激情一区二区三区 | 欧美日韩成人一区 | 日本精品视频在线观看 | 九色在线观看 | 午夜精| 成人免费看 | 亚洲欧美激情另类 | 久久精美视频 | 亚洲一二三区电影 | 国产乱码精品一区二区三区中文 | 国产成人免费在线 | 国产亚洲精品美女久久久久久久久久 | 天堂在线中文 | 国产乱码精品一品二品 | 日韩在线精品 | 成人激情视频在线观看 | 国产综合视频在线播放 | 久久综合狠狠综合久久综合88 | 九色91在线 | 亚洲成人精品 | 色婷婷av一区二区三区软件 | 欧美福利网 | 久久精品1区 | 精品久久中文字幕 | 高清国产一区 | 中文字幕一区二区三区四区不卡 | 亚洲免费视频一区二区 | 久久久久久久国产精品 | 黄色欧美一级片 | 色婷婷久久 | 亚洲一区免费在线观看 | 日本视频网| 大黄网站在线观看 | 中文字幕日韩欧美一区二区三区 | 日韩久久网站 | 午夜成人免费电影 | 精品国产黄a∨片高清在线 99热婷婷 | 午夜不卡视频 | 99久久精品免费看国产免费软件 | 四虎成人免费电影 | 黄色精品 | a毛片毛片av永久免费 | 美女扒开内裤让男人桶 | 久久久久久久一区二区 | 婷婷视频在线 | 国产精品久久久久久久久久久新郎 | av入口| 欧美日韩不卡 | 国产成人久久777777 | 青青久久av北条麻妃海外网 | 成人精品视频99在线观看免费 | 中文字幕综合在线 | 日韩成人在线视频 | 极品久久久久久 | 91精品国产91久久久久久最新 | 天天干夜夜爽 | 日本黄色大片免费 | 日韩在线视频一区 | 久久成人精品一区二区三区 | 性欧美大战久久久久久久免费观看 | 国产毛片a级 | 中文字幕一区在线观看 | 久久国产精品视频 | 亚洲福利在线播放 | 日本在线视频不卡 | 国产一区在线视频 | 欧美一级一区 | 日本涩涩网站 | hitomi一区二区三区精品 | 成人国产一区 | 古典武侠第一页久久777 | 欧美国产日韩在线 | 国产精品午夜电影 | www.日韩视频| 国产精品久久久久久久久久久新郎 | 亚洲精品午夜国产va久久成人 | 91久久精品国产91久久 | 久草在线免费福利资源 | 偷拍做爰吃奶视频免费看 | 91精品国产乱码久久久久久久久 | 国产日韩欧美精品一区二区 | 99精品国产一区二区三区 | 国产a免费 | 久久久久久久一区 | 日韩精品一区二区三区在线播放 | 青青草免费在线视频 | 国产精品亚洲一区 | 婷婷丁香激情 | 久久性视频 | 亚洲三级不卡 | 国产精品综合 | 成版人性视频 | 久久久久久亚洲精品 | 国产精品一区二区久久久久 | 国产精品1区2区3区 欧美 中文字幕 | 亚洲午夜电影 | 久久精品国产99国产精品 | 91高清在线| 青青久久网| 成人黄色a| 免费观看日韩一级片 | 久久精品亚洲 | 嫩草视频入口 | 久久爱www. | 亚洲成人精品在线观看 | 亚洲三级在线观看 | 国产精品主播 | 久久99国产精品免费网站 | 久久久久久91 | 国产精品久久久久久久久费观看 | 久久精品不卡 | 狠狠干美女 | 久草视频免费在线播放 | 亚洲精品国产综合区久久久久久久 | 日韩一区二区三区在线 | 成人中文网 | 欧美a级成人淫片免费看 | 国产激情视频 | 亚洲精品久久久久久久久久久久久 | 欧美 日韩 国产 一区 | 91精品久久久久久久久 | 97久久香蕉国产线看观看 | 国产精国产精品 | 国产精品一区二区三区免费 | 97超碰自拍 | 中文字幕天天操 | 成人免费视频网 | 欧美成人黄激情免费视频 | av一级毛片| 天天舔天天干 | 日韩一级免费观看 | 天天干天天插 | 日韩精品视频免费专区在线播放 | 天堂成人国产精品一区 | avmans最新导航地址 | 国产精品一区av | 在线看片网站 | 99精品久久久久久久免费 | 欧洲黄色 级黄色99片 | 国产精品久久久久久久久久东京 | 久久这里有精品 | 一区二区三区精品 | 色噜噜狠狠狠综合曰曰曰88av | 在线欧美成人 | av基地网| 日本一区二区在线视频 | 欧美a级成人淫片免费看 | 亚洲一区在线免费观看 | 久久精品麻豆 | www97影院| 国产精品第一区 | 久久精品久久久久久久久久16 | av一区二区在线观看 | 日韩一区中文字幕 | 久久久精品综合 | 国产精品人人做人人爽 | 人和拘一级毛片 | 国产精品日日做人人爱 | 欧美喷潮久久久xxxxx | 九九资源站 | 久在线 | 另类亚洲专区 | 国产性色av | 国产乱码精品1区2区3区 | 一二三区在线 | 亚洲乱码国产乱码精品精的特点 | 五月免费视频 | 欧美一级毛片免费观看 | 夜夜艹| 最新免费av网站 | 日韩高清成人 | 91av亚洲| 亚洲 欧美 日韩在线 | 国产精品久久久久久网站 | 99精品视频在线免费观看 | 国产精品1 | 欧美在线a | 91大神在线看 | 在线一区观看 | 婷婷激情综合 | 亚洲国产伊人 | 精品一区二区电影 | 999这里只有精品 | 亚州中文字幕蜜桃视频 | 久久久久成人精品 | 国产精品九九九 | 中文字幕久久精品 | 中文字幕第一页在线 | 草草视频在线播放 | 国产成人久久777777 | 色综合国产| 久久久久久久久久毛片 | 免费h| 视频在线一区二区 | 日韩精品一区二区三区在线播放 | 国产一区二区三区视频在线观看 | 欧美成人黄色 | 国产精品一区在线 | 国产精品成av人在线视午夜片 | 国产精品视频导航 | 国产福利一区二区三区视频 | 免费一区在线 | 日本欧美在线观看 | 日韩性xxx| 欧美不卡视频一区发布 | 亚洲欧美日韩在线一区 | 黄色av网站在线免费观看 | 99这里只有精品 | 综合五月激情 | 精品视频免费观看 | 欧美一级艳片视频免费观看 | 国产高清免费 | 久久久中文字幕 | a亚洲精品 | 久久精品亚洲一区 | 特黄一级 | 国产精品久久久久无码av | 亚洲电影一区二区 | 日韩精品一区二区三区在线观看 | 国产亚洲视频在线观看 | 欧美日韩视频 | 一级免费毛片 | 欧美韩一区二区 | 亚洲国产情侣自拍 | 久久狠狠 | 密室大逃脱第六季大神版在线观看 | 一级全黄少妇性色生活片毛片 | 国产精品午夜在线观看 | a久久 | 欧美一区二区在线视频 | 婷婷视频在线 | www.欧美 | 成人精品一区二区三区中文字幕 | 久久久久亚洲 | jizz在线观看 | 人人爱超碰 | 日本精品视频 | 好看的一级毛片 | 亚洲久草在线 | 午夜影院男女 | 天天精品 | 综合久久网 | 欧美日韩免费一区二区三区 | 国产黄色免费网站 | 欧美操穴| 欧美一区二区三区久久精品 | 91av免费在线观看 | 91一区二区三区 | 欧美精品1区2区3区 国产女无套免费网站 | 国产精品久久久久不卡 | 免费黄色网址在线播放 | 亚洲国产成人久久 | 777色狠狠一区二区三区 | av网站在线免费观看 | 亚洲精品一区二区 | 特级生活片 | 欧美激情视频一区二区三区在线播放 | 日韩久久一区二区 | 男人天堂网av | 亚洲国产成人在线 | 久久久久香蕉视频 | 欧美一级黄视频 | 国产精品欧美日韩 | 亚洲欧美综合精品久久成人 | 91亚洲国产成人久久精品网站 | 欧美日韩福利视频 | 久久久www | 欧美成人一区二区三区 | 国产成人免费 | 欧美综合久久 | 成人一区视频 | 91在线播放视频 | 黄色一级大片网站 | 成人影院一区二区三区 | 日韩午夜电影 | 操操操av| 欧美一区二区三 | 久久久久久久成人 | 欧美一区二区三区在线 | 99热在线观看免费 | 亚洲永久免费 | 久久精品久 | 欧美日韩精品一区二区三区 | 日韩视频网 | 午夜影院在线观看视频 | 在线小视频 | 四虎永久 | 亚洲久久久| 日韩和的一区二在线 | 欧美精品一区二区三区一线天视频 | 51国产午夜精品免费视频 | 久99视频| 国产婷婷在线观看 | 欧美日韩精品一区二区三区 | 国产精品中文字幕在线播放 | 精品在线一区二区 | 久久久99日产 | 午夜午夜精品一区二区三区文 | 午夜精品导航 | 久久中文字幕一区二区三区 | 国产精品一区二区三区四区 | 色视频网站在线观看 | 亚洲精品一区二区三区麻豆 | 欧美亚洲三级 | 一区二区免费在线视频 | 精品电影| 久久久精品一区 | 99亚洲| 9191视频| 欧美日韩一区二区电影 | 亚洲精品一区在线观看 | 黄网站色大毛片 | 日韩高清在线一区 | 日韩欧美在线观看视频网站 | 自拍偷拍小视频 | 在线免费视频成人 | 一级特黄色大片 | 日韩欧美国产成人一区二区 | 国产成年人小视频 | 天天干天天曰天天操 | 日本不卡一区二区三区在线观看 | 人人爽在线观看 | 亚洲日本二区 | 成人欧美一区二区三区黑人孕妇 | 黄色高清视频 | 国产精品久久久久久久久久久久久久 | 亚洲久草视频 | 韩日精品| 一区二区三区无码高清视频 | 91在线视频在线观看 | 91视频网| 精品一区二区三区四区五区 | 一级毛片免费网站 | 国产精品自产av一区二区三区 | 亚洲永久免费视频 | 天天射欧美 | 精品国产九九 | 美日韩成人 | 成人欧美一区二区三区在线播放 | 国产精品18久久久久久久久久久久 | 日本在线视频一区 | 一区二区三区成人 | 久久免费精品 | 国产精品成人国产乱一区 | 欧美黑人xx | 91成人免费在线观看 | 亚洲一区免费视频 | 色毛片| 91色电影| 亚洲黄色一区二区 | 国产精品成人3p一区二区三区 | 国产妇女乱码一区二区三区 | 在线免费观看激情视频 | 国产免费一区 | 天天插天天操 | 亚洲精品午夜aaa久久久 | 精品九九久久 | 超碰97中文| 超碰免费在 | 色猫猫国产区一区二在线视频 | 特一级黄色片 | 亚洲国产精品综合久久久 | 日韩av福利| 精品久久久久一区二区国产 | 国产a级大片 | 日本天天色 | 特级毛片在线 | 欧美一区视频 | 成人在线免费视频 | 手机看片在线 | 久久国产一区二区 | 久久久久99 | 精品日韩av | 国产在线一级片 | 日本在线观看视频网站 | 久久精品免费视频播放 | 能免费看av的网站 | 中文字幕在线视频免费播放 | 一区久久久 | 日韩91| 风间由美一区二区三区在线观看 | 国产在线精品视频 | 男女www视频 | 国内精品99 | 国产人成精品一区二区三 | 1204国产成人精品视频 | 欧美一级片在线观看 | 欧美日韩国产一区二区 | 欧美成人一区二区 | 亚洲成人免费在线 | 亚洲xx站| 亚洲电影一区二区 | 国产精品久久久久久久久 | 男女视频在线看 | 日韩国产一区二区三区 | 中文字幕av一区 | 中文成人在线 | 91一区二区三区 | av永久免费| 色婷婷综合久久久久中文一区二区 | 国产精品成人一区二区 | 免费观看一级特黄欧美大片 | 成人亚洲一区二区 | 日韩在线国产精品 | 午夜视频一区 | 精品国产一区二区三区久久久蜜月 | 久操视频在线 | 精品久久久久久国产 | 亚洲精品日本 | 99精品免费| a视频在线观看免费 | 97人人超碰 | 日韩视频免费 | h在线免费 | 一级免费在线视频 | a网站在线观看 | 伊人久操 | 国产精品视频一 | 韩国精品一区 | 91九色在线观看 | 日本伊人网站 | 欧美另类综合 | 久久久久久91香蕉国产 | 国精产品99永久一区一区 | 羞羞视频免费网站 | 欧美国产日韩在线 | 午夜精品久久久久久久星辰影院 | 亚洲欧美日韩一区 | 免费观看一区二区三区毛片软件 | 成人性大片免费观看网站 | 亚洲精品综合中文字幕 | 国产www视频 | 狠狠干美女| 亚洲一区二区三区高清 | 日本在线观看视频一区 | 91视频分类| 男女爱爱免费视频 | 国产成人精品免高潮在线观看 | 国产乱码精品1区2区3区 | 成人欧美一区二区三区在线观看 | 亚洲欧美激情精品一区二区 | 看毛片网站| 久久成人一区 | 亚洲精品乱码久久久久久蜜桃不卡 | 男人的天堂久久精品 | 日韩在线资源 | 国产精品日产欧美久久久久 | 欧美日韩激情 | 一区二区三区四区不卡视频 | 亚洲国产精品第一区二区 | 91精品国产综合久久精品 | 欧洲妇女成人淫片aaa视频 | 亚洲不卡 | 人人看人人草 | 日韩成人高清视频 | 亚洲一区高清 | 高清视频一区二区三区 | 久久亚洲一区 | 欧美日韩激情一区二区三区 | 成人在线视频一区 | 国产精品毛片久久久久久久 | 精品视频久久久久 | 国产精品视频播放 | 欧美日韩一区二区视频在线观看 | 欧美一区不卡 | 九九久久精品视频 | 91亚洲国产成人久久精品网站 | 日韩久久久 | 天天干天天操 | 精品久久久中文字幕 | 中文字幕一区二区三区四区五区 | 精品视频在线免费观看 | 久久国产精品系列 | 中文在线一区 | 国产福利91精品一区二区三区 | 欧美一级毛片免费观看 | 精品国产欧美 | 日本在线看 | 亚洲视频一区二区三区 | 一区二区免费 | 国产日韩一区二区三区 | 四虎影院网 | 日本一区二区三区免费观看 | 欧美亚洲一区二区三区 | 最新黄色网页 | 欧美在线a | 成人免费福利 | 狠狠搞狠狠搞 | 81精品国产乱码久久久久久 | 美女操网站 | 日批的视频 | 黄色一级片免费播放 | 一本大道综合伊人精品热热 | 亚洲国产视频精品 | 求av网址| 国产精品一区二区三区在线 | 国产中文字幕在线观看 | 天天拍天天干天天操 | 男人天堂视频在线观看 | 精品成人 | 欧美日韩久久精品 | 国产资源在线观看 | 成人免费淫片aa视频免费 | 国产在线激情视频 | 欧洲成人午夜免费大片 | 精品久久久久久久 | 国产欧美专区 | 伊人网国产 | 欧美成人黄色小说 | 国产精品久久久久aaaa九色 | 久久久xxxx | 国产一区二区三区久久久久久 | 国产人妖视频 | caoporn视频| 国产午夜精品一区二区三区视频 | 国产精品不卡 | 一区二区三区免费网站 | 欧美成人影院在线 | 久久国产精品亚洲 | 午夜影院入口 | 久久久久女人精品毛片九一韩国 | 天天操狠狠操 | 久久亚洲一区 | 可以看av的网站 | 九草在线 | 成人在线 | 日韩高清中文字幕 | 亚洲日日| 黄色一级片黄色一级片 | 热久久这里只有精品 | 福利电影在线 | 日本在线免费看 | 精品一区二区av | 日韩中文一区二区三区 | 日本在线视 | 国产精品美女久久久久久久久久久 | 精品1区| 亚洲日本欧美日韩高观看 | 亚洲欧美一区二区在线观看 | 国产欧美日本 | 操久久 | 欧美一区2区三区4区公司二百 | 国产精品久久av | 69av在线视频 | 一区中文字幕 | 欧美日韩成人在线视频 | 免费看一区二区三区 | 久久久久高清 | 亚洲欧美在线免费观看 | 91av原创| 国产羞羞视频免费在线观看 | 欧美国产综合一区 | 午夜亚洲 | 一区小视频 | 国产精品二区一区 | 日本a在线 |