亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

spring secrity 登出做一些操作

2019-11-11 05:10:53
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

今天 項(xiàng)目需要用戶退出的時(shí)候記錄登出日志,修改用戶的登錄狀態(tài)

<?xml version="1.0" encoding="UTF-8"?><beans:beans xmlns="http://www.sPRingframework.org/schema/security"	xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd                          http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.2.xsd">	<global-method-security pre-post-annotations="enabled" />	<!-- HTTP安全配置 -->	<http auto-config="false" entry-point-ref="authenticationEntryPoint"  access-denied-page="/denied.html">		<intercept-url pattern="/login.html" access="IS_AUTHENTICATED_ANONYMOUSLY"/>		<intercept-url pattern="/index.html" access="IS_AUTHENTICATED_ANONYMOUSLY"/>		<intercept-url pattern="/m/**" access="IS_AUTHENTICATED_ANONYMOUSLY"/>		<intercept-url pattern="/commons/**" access="IS_AUTHENTICATED_ANONYMOUSLY"/>		<intercept-url pattern="/upload/**" access="IS_AUTHENTICATED_ANONYMOUSLY"/>        <intercept-url pattern="/cms/**" access="ROLE_USER"/>       <!--  <intercept-url pattern="/adminIndex.html" access="ROLE_USER"/> -->        <intercept-url pattern="/pages/*.html" access="ROLE_USER"/>       <!--  logout-success-url="/login.html" -->        <logout logout-url="/j_spring_security_logout" invalidate-session="true"             delete-cookies="JSESSIONID" success-handler-ref="myLogoutSuccessHandler"/>                <custom-filter ref="corsFilter" after="PRE_AUTH_FILTER"/>		<custom-filter ref="myLoginFilter" position="FORM_LOGIN_FILTER" />		<custom-filter ref="mySecurityFilter" before="FILTER_SECURITY_INTERCEPTOR" />	</http>		<beans:bean id="corsFilter" class="com.threeti.danfoss.base.filter.SecurityCorsFilter" />		<beans:bean id="sas"		class="org.springframework.security.web.authentication.session.ConcurrentSessionControlStrategy">		<beans:property name="maximumSessions" value="1"></beans:property>		<beans:property name="exceptionIfMaximumExceeded"			value="true"></beans:property>		<beans:constructor-arg name="sessionRegistry"			ref="sessionRegistry"></beans:constructor-arg>	</beans:bean>		<beans:bean id="sessionRegistry"		class="org.springframework.security.core.session.SessionRegistryImpl"></beans:bean>	<beans:bean id="myLoginFilter"		class="com.threeti.danfoss.base.filter.MyUsernamePassWordAuthenticationFilter">		<beans:property name="authenticationManager" ref="myAuthenticationManager"/>          <beans:property name="authenticationFailureHandler" ref="failureHandler"/>          <beans:property name="authenticationSuccessHandler" ref="successHandler"/>  		<beans:property name="sessionAuthenticationStrategy"			ref="sas"></beans:property>	</beans:bean>		      <beans:bean id="successHandler" class="com.threeti.danfoss.base.handler.MyAuthenticationSuccessHandler">          <beans:property name="defaultTargetUrl" value="/pages/menu.html#current/wind/surface/level/anim=off/overlay=misery_index/orthographic=39.08,42.42,294/loc=96.475,39.357" />      </beans:bean>         <beans:bean id="failureHandler" class="com.threeti.danfoss.base.handler.MySimpleUrlAuthenticationFailureHandler">          <beans:property name="defaultFailureUrl" value="/index.html"/>      </beans:bean>         <beans:bean id="myLogoutSuccessHandler" class="com.threeti.danfoss.base.handler.MyLogoutSuccessHandler">       	<beans:property name="defaultTargetUrl" value="/login.html"/>       	<!-- 下面的 是通過(guò)在url參數(shù)進(jìn)行跳轉(zhuǎn) -->       	<!-- <property name="targetUrlParameter" value="target-url"/>      	<property name="redirectStrategy" ref="safeRedirectStrategy"/> -->    </beans:bean>     <!-- 安全的RedirectStrategy,主要是判斷跳轉(zhuǎn)地址是否在白名單中    public class SafeRedirectStrategy implements RedirectStrategy -->    <!-- <beans:bean id="safeRedirectStrategy" class="com.snsxiu.job.web.security.SafeRedirectStrategy"/> -->    	<!-- 1.URL過(guò)濾器或方法攔截器:用來(lái)攔截URL或者方法資源對(duì)其進(jìn)行驗(yàn)證,其抽象基類為AbstractSecurityInterceptor 		2.資源權(quán)限獲取器:用來(lái)取得訪問(wèn)某個(gè)URL或者方法所需要的權(quán)限,接口為SecurityMetadataSource 3.訪問(wèn)決策器:用來(lái)決定用戶是否擁有訪問(wèn)權(quán)限的關(guān)鍵類,其接口為AccessDecisionManager 		調(diào)用順序?yàn)椋篈bstractSecurityInterceptor調(diào)用SecurityMetadataSource取得資源的所有可訪問(wèn)權(quán)限, 然后再調(diào)用AccessDecisionManager來(lái)實(shí)現(xiàn)決策,確定用戶是否有權(quán)限訪問(wèn)該資源。 -->	<!-- 自定義的filter, 必須包含authenticationManager, accessDecisionManager, securityMetadataSource三個(gè)屬性 -->	<beans:bean id="mySecurityFilter" class="com.threeti.danfoss.base.security.XaFilterSecurityInterceptor">		<beans:property name="authenticationManager" ref="myAuthenticationManager" />		<beans:property name="accessDecisionManager" ref="myAccessDecisionManager" />		<beans:property name="securityMetadataSource" ref="mySecurityMetadataSource" />	</beans:bean>	<!-- 取HTTP配置中的authenticationManager 設(shè)置alias別名 -->	<authentication-manager alias="myAuthenticationManager">		<authentication-provider user-service-ref="userDetailsManager">            <password-encoder hash="md5"/>		</authentication-provider>	</authentication-manager>		<!-- 用戶詳細(xì)信息管理:數(shù)據(jù)源、用戶緩存(通過(guò)數(shù)據(jù)庫(kù)管理用戶、角色、權(quán)限、資源) -->	<beans:bean id="userDetailsManager" class="com.threeti.danfoss.base.security.XaUserDetailsService">	</beans:bean>	<!-- 訪問(wèn)決策器,決定某個(gè)用戶具有的角色,是否有足夠的權(quán)限去訪問(wèn)某個(gè)資源。 -->	<beans:bean id="myAccessDecisionManager"		class="com.threeti.danfoss.base.security.XaAccessDecisionManagerService" />	<!-- 資源源數(shù)據(jù)定義,將所有的資源和權(quán)限對(duì)應(yīng)關(guān)系建立起來(lái),即定義某一資源可以被哪些角色去訪問(wèn)。 -->	<beans:bean id="mySecurityMetadataSource" init-method="loadResourceDefine"		class="com.threeti.danfoss.base.security.XaSecurityMetadataSourceService">	</beans:bean>			<beans:bean id="authenticationEntryPoint"		class="org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint">		<beans:property name="loginFormUrl" value="/login.html" />	</beans:bean></beans:beans>java 代碼

package com.threeti.danfoss.base.handler;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.security.core.Authentication;import org.springframework.security.web.authentication.logout.LogoutSuccessHandler;import org.springframework.security.web.authentication.logout.SimpleUrlLogoutSuccessHandler;import com.threeti.danfoss.base.constant.XaConstant;import com.threeti.danfoss.base.entity.XaCmsUser;import com.threeti.danfoss.base.repository.XaCmsUserRepository;import com.threeti.danfoss.base.security.XaUserDetails;public class MyLogoutSuccessHandler extends SimpleUrlLogoutSuccessHandler   implements LogoutSuccessHandler{@Autowiredprivate XaCmsUserRepository xaCmsUserRepository;@Overridepublic void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication)throws IOException, ServletException {XaUserDetails user = (XaUserDetails) authentication.getPrincipal();XaCmsUser u = xaCmsUserRepository.findByUserName(user.getUsername(),XaConstant.Status.valid);u.setOnline(0);xaCmsUserRepository.save(u);super.onLogoutSuccess(request, response, authentication);}}

還有另外一種方式:下面的就是復(fù)制前面的東西。沒有進(jìn)行測(cè)試,先記錄下來(lái),有空進(jìn)行測(cè)試:

這里是前輩的文章地址:http://www.111cn.net/jsp/J2ME/60099.htm

spring security的form-login提供了default-target-url作為登錄成功后的跳轉(zhuǎn)地址,唯獨(dú)沒有允許傳遞一個(gè)redirectUrl參數(shù)來(lái)作為成功后的跳轉(zhuǎn)地址。同樣的logout標(biāo)簽提供了logout-success-url作為退出成功后的跳轉(zhuǎn)地址,也沒有提供允許傳遞redirectUrl參數(shù)來(lái)進(jìn)行跳轉(zhuǎn)。本來(lái)打算自己實(shí)現(xiàn)和AdminAuthSuccessHandler和LogoutSuccessHandler來(lái)接收redirectUrl參數(shù)進(jìn)行跳轉(zhuǎn)的,結(jié)果查看spring security的代碼無(wú)意間發(fā)現(xiàn)spring security居然提供了targetUrlParameter作為跳轉(zhuǎn)地址的參數(shù),只是Security Namespace沒有相關(guān)的標(biāo)簽或?qū)傩浴S谑窃谧x完跳轉(zhuǎn)相關(guān)的代碼之后自己寫了以下配置。注:如果直接允許傳遞redirectUrl作為跳轉(zhuǎn)地址,會(huì)有一定的安全風(fēng)險(xiǎn)。在使用之前,確保redirectUrl可信。下面的這段配置有一定安全隱患。

 代碼如下復(fù)制代碼
<sec:http auto-config="true">    <sec:intercept-url pattern="/admin/login" access="IS_AUTHENTICATED_ANONYMOUSLY"/>    <sec:form-login login-page="/admin/login" authentication-failure-handler-ref="adminAuthFailureHandler" authentication-success-handler-ref="adminAuthSuccessHandler"/>    <sec:logout success-handler-ref="adminLogoutSuccessHandler"/>    <sec:remember-me data-source-ref="jobDataSource"/>    <sec:session-management>        <sec:concurrency-control error-if-maximum-exceeded="true" max-sessions="1"/>    </sec:session-management></sec:http> <bean id="adminAuthFailureHandler" class="com.snsxiu.job.handler.AdminAuthFailureHandler">      <property name="authenticationFailureUrl" value="/admin/login?error=true"/></bean>   <bean id="adminAuthSuccessHandler" class="org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler">    <property name="targetUrlParameter" value="target-url"/>    <property name="defaultTargetUrl" value="/admin/index"/></bean>   <bean id="adminLogoutSuccessHandler" class="org.springframework.security.web.authentication.logout.SimpleUrlLogoutSuccessHandler">    <property name="targetUrlParameter" value="target-url"/>    <property name="defaultTargetUrl" value="/admin/login"/></bean>

通過(guò)查看源碼我們發(fā)現(xiàn),SimpleUrlLogoutSuccessHandler繼續(xù)了AbstractAuthenticationTargetUrlRequestHandler,同樣的SavedRequestAwareAuthenticationSuccessHandler也是繼承了AbstractAuthenticationTargetUrlRequestHandler,而在AbstractAuthenticationTargetUrlRequestHandler的handle方法里,我們發(fā)現(xiàn)它是通過(guò)determineTargetUrl()方法來(lái)決定Redirect地址的。

 代碼如下復(fù)制代碼
public class SimpleUrlLogoutSuccessHandler extends AbstractAuthenticationTargetUrlRequestHandler        implements LogoutSuccessHandler {     public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication)            throws IOException, ServletException {        super.handle(request, response, authentication);    } }

通過(guò)分析determineTargetUrl我們得出以下結(jié)論:①如果alwaysUseDefaultTargetUrl為true,則跳轉(zhuǎn)地址始終為defaultTargetUrl②如果targetUrlParameter不為null,則從request中targetUrlParameter指定的參數(shù)名獲取跳轉(zhuǎn)地址③如果useReferer為true,并且前兩步?jīng)]有獲取到跳轉(zhuǎn)地址,則從請(qǐng)求頭中的Referer獲取跳轉(zhuǎn)地址④如果以上幾步都為空,則使用設(shè)置的defaultTargetUrl作為跳轉(zhuǎn)地址⑤defaultTargetUrl的默認(rèn)值是"/" 在最終跳轉(zhuǎn)時(shí),spring security使用一個(gè)RedirectStrategy策略來(lái)進(jìn)行跳轉(zhuǎn),一般都是使用DefaultRedirectStrategy來(lái)進(jìn)行跳轉(zhuǎn),你也可以實(shí)現(xiàn)自己的RedirectStrategy并配置在adminAuthSuccessHandler的bean定義中。 在剛開始的時(shí)候我們說(shuō)過(guò)“如果直接允許傳遞redirectUrl作為跳轉(zhuǎn)地址,會(huì)有一定的安全風(fēng)險(xiǎn)”。如果別人通過(guò)你的login或logout傳遞redirectUrl參數(shù)誤導(dǎo)用戶跳到了病毒木馬網(wǎng)站,那這肯定是你的安全做的不夠,為了安全我們,我們需要實(shí)現(xiàn)自己的SafeRedirectStrategy,如下所示,在跳轉(zhuǎn)之前對(duì)URL進(jìn)行了白名單校驗(yàn)。

 代碼如下復(fù)制代碼
/** * 安全的RedirectStrategy,主要是判斷跳轉(zhuǎn)地址是否在白名單中 * @author guoweiwei gww0426@163.com * */public class SafeRedirectStrategy implements RedirectStrategy {     protected final Log logger = LogFactory.getLog(getClass());     private boolean contextRelative;     /**     * Redirects the response to the supplied URL.     * <p>     * If <tt>contextRelative</tt> is set, the redirect value will be the value after the request context path. Note     * that this will result in the loss of protocol information (HTTP or HTTPS), so will cause problems if a     * redirect is being performed to change to HTTPS, for example.     */    public void sendRedirect(HttpServletRequest request, HttpServletResponse response, String url) throws IOException {        String redirectUrl = calculateRedirectUrl(request.getContextPath(), url);                  try {            if(UrlUtils.isAbsoluteUrl(redirectUrl)){                        redirectUrl = UrlUtil.buildRedirectLink(redirectUrl, false);                    }        } catch (Exception e) {            throw new IOException("error redirect url", e);        }                  redirectUrl = response.encodeRedirectURL(redirectUrl);         if (logger.isDebugEnabled()) {            logger.debug("Redirecting to '" + redirectUrl + "'");        }         response.sendRedirect(redirectUrl);    }     private String calculateRedirectUrl(String contextPath, String url) {        if (!UrlUtils.isAbsoluteUrl(url)) {            if (contextRelative) {                return url;            } else {                return contextPath + url;            }        }         // Full URL, including http(s)://         if (!contextRelative) {            return url;        }         // Calculate the relative URL from the fully qualified URL, minus the scheme and base context.        url = url.substring(url.indexOf("://") + 3); // strip off scheme        url = url.substring(url.indexOf(contextPath) + contextPath.length());         if (url.length() > 1 && url.charAt(0) == '/') {            url = url.substring(1);        }         return url;    }     /**     * If <tt>true</tt>, causes any redirection URLs to be calculated minus the protocol     * and context path (defaults to <tt>false</tt>).     */    public void setContextRelative(boolean useRelativeContext) {        this.contextRelative = useRelativeContext;    } }

上面代碼中UrlUtil為自己實(shí)現(xiàn)的一個(gè)Url處理工具,buildRedirectLink會(huì)對(duì)url做白名單校驗(yàn)。完了別忘了在servlet.xml的bean配置中加入safeRedirectStrategy。如下所示:

 代碼如下復(fù)制代碼
<bean id="adminAuthSuccessHandler" class="org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler">    <property name="targetUrlParameter" value="target-url"/>    <property name="defaultTargetUrl" value="/admin/index"/>    <property name="redirectStrategy" ref="safeRedirectStrategy"/>  </bean>     <bean id="adminLogoutSuccessHandler" class="org.springframework.security.web.authentication.logout.SimpleUrlLogoutSuccessHandler">      <property name="targetUrlParameter" value="target-url"/>      <property name="defaultTargetUrl" value="/admin/login"/>      <property name="redirectStrategy" ref="safeRedirectStrategy"/>  </bean>     <bean id="safeRedirectStrategy" class="com.snsxiu.job.web.security.SafeRedirectStrategy"/>


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
这里只有精品视频在线| 欧美日韩一区在线观看视频| 一本色道久久亚洲综合精品蜜桃| 视色视频在线观看| av片在线免费| 久草在线资源福利| 91亚洲精品视频在线观看| 亚洲欧美精选| 亚洲一区二区在线观| 精品国产午夜肉伦伦影院| 在线视频国内自拍亚洲视频| 久久精品亚洲一区二区三区浴池| 色爱av美腿丝袜综合粉嫩av| 国产欧美一区二区三区国产幕精品| 欧美xxxxxxxx| 日韩精品视频网址| 粉嫩精品久久99综合一区| 国产精品黄色影片导航在线观看| 欧美日韩中国免费专区在线看| 蜜桃视频网站www| 色婷婷粉嫩av| 最新中文字幕一区二区三区| 老司机亚洲精品| www.毛片.com| 一区二区三区在线观看国产| 国产精品乱码妇女bbbb| 亚洲欧美视频一区二区三区| 精品一区二区不卡| 午夜在线观看视频| 久久91亚洲| 日本一区二区三区在线观看| 成年人网站在线免费观看| 色老板在线视频一区二区| 亚洲色图插插| 精品女同一区二区三区在线播放| aaa在线免费观看| free性中国hd国语露脸| 日韩av在线中文| www.毛片.com| 国产精品免费看久久久香蕉| 日韩欧美中文字幕制服| 制服下的诱惑暮生| 91看片淫黄大片一级| 91精品国产91久久久久久最新| 国产精品成人a在线观看| 精品人妻一区二区三区蜜桃视频| 色偷偷亚洲第一成人综合网址| 91精品国产毛片武则天| 91免费版网站入口| 超碰96在线| 国产精品专区h在线观看| 久久久精品美女| 1区1区3区4区产品乱码芒果精品| 欧美日本高清视频| 九九九精品视频| 魔女鞋交玉足榨精调教| 国产精品二区视频| 另类图片激情| 黄色成人影院| 欧美一区二不卡视频| 在线免费黄色毛片| 生活片a∨在线观看| 99er热精品视频| 99久久婷婷这里只有精品| 欧美 日韩 国产 精品| 亚洲+小说+欧美+激情+另类| 手机在线观看av网站| 成人免费精品动漫网站| 一级黄色大片免费观看| 黑丝av在线播放| 色综合.com| 精品呦交小u女在线| 一级毛片久久久| 色999日韩国产欧美一区二区| 亚洲黑人在线| 99精品久久久久久中文字幕| 免费永久在线观看黄网| 久久婷婷国产综合精品青草| 欧美在线视频播放| 久草在线免费福利资源| 夜夜嗨av一区二区三区四区| 亚洲免费观看高清完整| 久久久香蕉视频| 日本在线观看| 午夜一级黄色片| 久久在线中文字幕| 中文字幕欧美日韩一区二区| 亚洲欧美日韩精品久久久久| a看欧美黄色女同性恋| 日韩欧美黄色大片| 日韩一区二区高清视频| 岛国精品一区| 三级ai视频| 国产精品亚洲人成在99www| 国产高清av在线| 国产三级aaa| 久久午夜电影网| 日韩精品久久一区二区三区| 中文字幕乱码视频| 亚洲综合国产精品| 性一交一乱一透一a级| 激情五月色综合亚洲小说| 天天天天天天操| 最新国产中文字幕| 亚洲欧美自偷自拍| 不卡一区2区| 天天做天天爱天天爽综合网| 一区二区三区久久精品| 国产一区二区伦理片| 日本一级理论片在线大全| 91年精品国产| 久久久久久久久久码影片| 亚洲精品视频在线观看视频| 国内国产精品天干天干| 成人三级视频在线观看一区二区| 精品人妻无码中文字幕18禁| 91精品影视| 欧美成人伊人久久综合网| 欧美黑人又粗大| 欧美性色欧美a在线播放| 国产精品99| 免费观看成人鲁鲁鲁鲁鲁视频| 男女男精品网站| 在线天堂新版最新版在线8| 91免费视频黄| 无套白嫩进入乌克兰美女| 蜜桃传媒视频第一区入口在线看| 亚洲综合丁香婷婷六月香| 国产精品亚洲lv粉色| 亚洲精品中文字幕在线观看| heisi视频网在线观看| 亚洲美腿欧美偷拍| 天天操 夜夜操| 韩国av网站在线| 看**视频a级毛片| av黄色在线观看| 亚洲精品成人天堂一二三| 欧美二区三区的天堂| 日韩av网站在线播放| 中文字幕免费在线视频| 91av国产在线| 人成免费电影一二三区在线观看| 国产xxx在线观看| 中文文精品字幕一区二区| 亚洲欧美激情另类校园| 向日葵视频成人app网址| 久草视频免费看| 蜜臀av性久久久久蜜臀av| 97精品国产| gogo亚洲高清大胆美女人体| 在线观看wwww| 免费男女羞羞的视频网站中文字幕| 精品视频在线观看| 久久久欧美精品| 亚洲一区二区影院| 一本一本久久a久久精品综合妖精| 欧美精品一区二区三区一线天视频| 亚洲第一黄色片| 97人妻人人揉人人躁人人| 免费观看黄色的网站| 影音先锋中文一区| 美女毛片在线看| 精品一区二区三区的国产在线播放| 国产精品国产福利国产秒拍| 免费看的黄色录像| 免费看啪啪网站| 色婷婷中文字幕| 一个人www欧美| 国产精品女同一区二区| 羞羞小视频视频| 久久久国产亚洲精品| 欧美4khd| 国产精品va在线播放我和闺蜜| 欧美日韩日日摸| 色婷婷一区二区三区在线观看| 精品国精品国产尤物美女| 中文字幕网在线| a一区二区三区| 国产免费一区二区三区视频| 免费免费啪视频在线观看| 国产伦精品一区二区| 可以免费看毛片的网站| 国产乱码精品一区二区三区五月婷| 国产欧美日韩精品综合| 日本在线免费播放| 国产午夜精品久久| 7878视频在线观看| 久久久精品一区| 国产欧美日韩亚洲| 日韩电影在线观看完整免费观看| 色在人av网站天堂精品| 激情网站五月天| 成人9ⅰ免费影视网站| 午夜av噜噜噜噜噜噜| 免费国产视频| 精品视频高清无人区区二区三区| 三级理论午夜在线观看| 国产精品欧美日韩一区二区| 在线视频1卡二卡三卡| 国产一级片一区二区| 精品在线播放视频| 亚洲国产精品网站| 日韩和的一区二在线| 色偷偷综合网| 欧美综合另类| 久久精品免费一区二区| 国产综合久久久| 亚洲va综合va国产va中文| 久久久久久久网| 吉吉日韩欧美| 亚洲成人久久一区| www.成人.com| 精品久久成人| 天天干天天插天天操| 国产精品最新| 欧美中文在线观看| 久久久久无码国产精品一区| 在线看小视频| 精品入口麻豆传煤| 影音先锋亚洲一区| 99视频这里有精品| 欧美1o一11sex性hdhd| 一区二区三区免费视频播放器| 色网站在线免费观看| 潘金莲一级黄色片| 欧美精品久久久久久久久久久| 一二三四国产精品| 欧美精品三级在线观看| 成人免费在线观看视频网站| 三级网在线观看| www视频免费看| 欧美成人性色生活仑片| 国产美女久久| 亚洲国产精品一区二区第四页av| 91精品国产色综合久久久蜜香臀| 亚洲大黄网站| 午夜影院日韩| 欧美三级午夜理伦三级| 色播在线视频| 欧美人妻精品一区二区三区| xvideos.蜜桃一区二区| 国产喂奶挤奶一区二区三区| 一级黄色大片视频| 日本激情小视频| 日韩大陆欧美高清视频区| 久久久久中文字幕| 韩国三级在线一区| 欧美精品一区二区三区久久久竹菊| 国产精品色眯眯| 国产一区在线观看视频| 亚洲韩国青草视频| 日韩成人av在线资源| 日本一本草久p| 污污视频网站免费观看| 精品视频偷偷看在线观看| 91精品国产乱码久久久竹菊| 两根大肉大捧一进一出好爽视频| 成人观看免费完整观看| 亚洲在线一区二区三区| 免费黄色在线视频网站| 精品视频在线播放色网色视频| 亚洲三级黄色片| 看免费黄色录像| 作爱视频免费观看视频在线播放激情网| 中文字幕一区二区三区日韩精品| 国产爆初菊在线观看免费视频网站| 色综合天天综合网国产成人网| 国产精品入口麻豆九色| 麻豆精品视频在线观看免费| 无套内谢丰满少妇中文字幕| 久久视频在线| 厕沟全景美女厕沟精品| 天堂av在线播放| 另类小说欧美激情| 欧美 日韩 国产 一区| 欧美一区二区三区的| 91国产视频在线播放| 亚洲av无日韩毛片久久| 精品性高朝久久久久久久| 久九九久频精品短视频| 99久久婷婷这里只有精品| 亚洲美女福利视频网站| 欧美激情视频一区二区三区| 亚洲在线免费播放| 中文无码日韩欧| 久久99国产精一区二区三区| 久久这里只精品| 亚洲精品伦理| 亚洲欧美一区二区久久| 国产精品少妇在线视频| 国产精品无码一区二区三| 7788色淫网站小说| 先锋影音亚洲资源| 国产一精品一av一免费爽爽| 中文字幕亚洲精品在线| 亚洲成人精品久久久| 一区二区三区免费观看视频| 国产精华一区二区三区| 欧美高清视频一区| 福利视频午夜| 国产美女www爽爽爽| 久草亚洲一区| 9797在线看片亚洲精品| 欧美日韩精品欧美日韩精品一综合| 欧美国产高跟鞋裸体秀xxxhd| a天堂在线观看| 欧美精品一区二区三区国产精品| 在线观看91视频| 亚洲免费中文字幕| 中文字幕不卡免费视频| 久久久久久久久久久久久久免费看| 成人av黄色| 国产福利资源| 久久精品麻豆| 羞羞答答一区二区| 成人网页在线免费观看| 国产精品一区二区三区美女| 成人性视频网站| www操com| 日韩欧美亚洲范冰冰与中字| 宅男在线一区| 国产成人激情视频| 久久久99免费视频| 中文字幕亚洲日本岛国片| 爱情岛论坛亚洲首页入口章节| 香港欧美日韩三级黄色一级电影网站| 精品人妻无码一区二区性色| 一级黄色片毛片|