<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 37,  comments - 53,  trackbacks - 0
      2011年2月9日
    grails應用以war包的方式發布到weblogic本來應該是沒有什么問題的,也不需要像網上說的那樣進行weblogic的配置,但是有兩個小問題在實際的使用中需要注意:
    1.我的應用中,使用了spring-security-cas的插件來實現cas client,但是不知道為什么在生產war包是,在web.xml中,有兩個CAS Single Sign Out Filter的mapping,結果導致發布失敗,需要手工刪除一個(目前的解決辦法)
    2.grails的urlmapping插件,如果映射“/”到某個action,目前好像是不成功的,但是只要不是“/”,則沒有這個問題。如果默認的根目錄不是index.gsp,這個可能需要在訪問“/”時進行跳轉的處理。

    posted @ 2011-02-09 16:21 雪地孤鴻 閱讀(514) | 評論 (0)編輯 收藏
    1.weblogic必須是10.3.4.0或以上版本,由于cas server采用了spring 2.5的版本,使用JPA2.0的原因,weblogic10.3.4之前的版本不支持jpa2.0
    2.cas server webapp 如果以war的方式發布,會因為log4j.xml的問題而不能正常發布,具體原因還沒有完全弄清楚,但是如果以解開后的文件夾目錄的方式發布則沒有問題。

    posted @ 2011-02-09 16:16 雪地孤鴻 閱讀(3249) | 評論 (2)編輯 收藏
      2011年1月26日
    測試環境下使用的是mysql數據庫,切換到正式的oralce數據庫中去發現cas server是無效的,主要的原因是由于數據庫的差異導致的
    認證用戶的sql語句在mysql下為
    select password from user_login where username=? and enabled=true
    而在oracle下應該為
    select password from user_login where username=? and enabled=1
    主要由于oralce和mysql對boolean字段的處理不一致導致的。

    posted @ 2011-01-26 09:05 雪地孤鴻 閱讀(707) | 評論 (0)編輯 收藏
      2011年1月21日

    cas server logout后,默認是停留在cas的退出頁面,一般我們需要重新轉向到客戶端網站的登錄或是相關的頁面,一般需要進行一下配置

    1.cas-server端,配置文件為/WEB-INFO/cas-servlet.xml中的logoutController

     <bean id="logoutController" class="org.jasig.cas.web.LogoutController" 
         p:centralAuthenticationService-ref="centralAuthenticationService" 
         p:logoutView="casLogoutView" 
         p:warnCookieGenerator-ref="warnCookieGenerator" 
         p:ticketGrantingTicketCookieGenerator-ref="ticketGrantingTicketCookieGenerator"   
          p:followServiceRedirects="true"/>

    posted @ 2011-01-21 13:38 雪地孤鴻 閱讀(1051) | 評論 (1)編輯 收藏

    經過將近兩天的測試,參考眾多網友的貢獻,終于完成了對cas的主要配置和測試,現記錄如下

    基本需求:

    1.cas server-3.4.5,casclient-3.2(官方版本),均可在cas官方網站下載,http://www.jasig.org

    2.使用低成本的http協議進行傳輸,俺買不起ssl證書

    3.通過jdbc進行用戶驗證

    4.需要通過casserver提供除登錄用戶名以外的附加信息

    參考資料:

    1.cas官方網站的用戶幫助手冊和wiki

    2.網友“城市獵人”的blog,http://yuzhwe.javaeye.com/blog/830143

    3.網友“悟空悟道”的blog,http://llhdf.javaeye.com/blog/764385

    4.其他網友貢獻的相關的blog,都是通過google出來,就不一一列出了,一并致謝!!!

    好了,下面進入正題,如果您不想測試中出現異常情況,或是獲取不到相關數據,請關注文中的紅色字體部分。

    (1)使用http協議的設置,如果您也像我一樣,買不起ssl數字證書,對安全的要求也不是特別的搞,下面的配置就可以幫助解決這個問題:

    在cas-server-webapp中的/WEB-INF/spring-configuration/ticketGrantingTicketCookieGenerator.xml文件中有如下配置

    <bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
      p:cookieSecure="true"     //默認為true,使用https,如果只需要http,修改為false即可
      p:cookieMaxAge="-1"
      p:cookieName="CASTGC"
      p:cookiePath="/cas" />

     (2)使用jdbc數據源進行用戶認證,需要修改cas的authenticationHandlers方式,在文件/WEB-INF/deployerConfigContext.xml有如下配置:

    <property name="authenticationHandlers">
       <list>
        <!--
         | This is the authentication handler that authenticates services by means of callback via SSL, thereby validating
         | a server side SSL certificate.
         +-->
        <bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
         p:httpClient-ref="httpClient" />
        <!--
         | This is the authentication handler declaration that every CAS deployer will need to change before deploying CAS
         | into production.  The default SimpleTestUsernamePasswordAuthenticationHandler authenticates UsernamePasswordCredentials
         | where the username equals the password.  You will need to replace this with an AuthenticationHandler that implements your
         | local authentication strategy.  You might accomplish this by coding a new such handler and declaring
         | edu.someschool.its.cas.MySpecialHandler here, or you might use one of the handlers provided in the adaptors modules.
         +-->
        <!--<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />-->
         <bean  class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
             <property name="dataSource" ref="dataSource" />
            
    <property name="sql" value="select password from userInfo where username=? and enabled=true" />
             //用戶密碼編碼方式

             <property name="passwordEncoder"
               ref="passwordEncoderBean"/>
             </bean>  
       </list>
      </property>

    該屬性中的list只要用一個認證通過即可,建議將紅色部分放在第一位,如果確認只用jdbc一種方式,其他認證方式均可刪除。另外需要在在文件中添加datasoure和passordEncoder兩個bean,如下

    <!-- Data source definition -->
     <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
      <property name="driverClassName">
        <value>com.mysql.jdbc.Driver</value>
      </property>
      <property name="url">
        <value>jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=utf-8</value>    //如果使用mysql數據庫,應該加上后面的編碼參數,否則可能導致客戶端對TGT票據無法識別的問題
      </property>
      <property name="username"><value>root</value></property>
      <property name="password"><value>password</value></property>
     </bean>
     <bean id="passwordEncoderBean" class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder">
            <constructor-arg value="SHA1" />  //cas
    server默認支持MD5和SHA1兩種編碼方式,如果需要其他的編碼方式例如SHA256,512等,可自行實現org.jasig.cas.authentication.handler.PasswordEncoder接口
        </bean>

    附加備注:如果您是使用cas server的源碼自行編譯的話,需要在cas-server-web模塊的pom.xml中添加如下模塊的依賴:

    <dependency>
           <groupId>${project.groupId}</groupId>
           <artifactId>cas-server-support-jdbc</artifactId>
           <version>${project.version}</version>
      </dependency>  

    并添加對應數據庫的jdbc的jar包。

    (3)讓cas server提供更多的用戶數據共客戶端使用

    通過測試,由于cas的代碼更新過程中的變化較大,所以包兼容的問題好像一直存在,在測試中我就碰到過,花費時間比較多,建議同學們在使用過程中使用官方的最新的發布版本。在我使用的這個版本中,請參考前面的關于server和client端的版本說明,應該沒有包沖突的問題,測試通過。下面進行配置,配置文件:/WEB-INF/deployerConfigContext.xml
    <property name="credentialsToPrincipalResolvers">
       <list>
           <!--<bean class="org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver" />-->
        <!-- modify on 2011-01-18,add user info -->
        <bean class="org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver" >
          <property name="attributeRepository" >   //為認證過的用戶的Principal添加屬性
          <ref local="attributeRepository"/>
         </property> 
        </bean>
          <bean
         class="org.jasig.cas.authentication.principal.HttpBasedServiceCredentialsToPrincipalResolver" />
       </list>
      </property>
     修改該文件中默認的 attributeRepositorybean配置
    <!-- 在這里配置獲取更多用戶的信息 -->
     <bean id="attributeRepository" class="org.jasig.services.persondir.support.jdbc.SingleRowJdbcPersonAttributeDao">
      <constructor-arg index="0" ref="dataSource" />
      <constructor-arg index="1" value="select id as UId, password_hint as ph from userInfo where username=? and enabled=true" />
      <property name="queryAttributeMapping">
       <map>
       <entry key="username" value="uid"/><!-- 這里必須這么寫,系統會自己匹配,貌似和where語句后面的用戶名字段的拼寫沒有什么關系 -->
       </map>
      </property>
       <!-- 要獲取的屬性在這里配置 -->
      <property name="resultAttributeMapping">
       <map>
       <entry key="UId" value="userId" /> //key為對應的數據庫字段名稱,value為提供給客戶端獲取的屬性名字,系統會自動填充值
       <entry key="ph" value="passwordHint" />   
       </map>
      </property>
    </bean> 
    備注:網上有很多的關于這個的配置,但是如果您使用的是我提供的版本或是高于這個版本,就應該象上面這樣配置,無用質疑,網上大部分的配置都是基于
    person-directory-impl,person-directory-api
    1.1左右的版本,而最新的cas使用的是1.5的版本,經過查看源代碼和api docs確定最新版本的屬性參數如上配置。

    修改該xml文件中最后一個默認的serviceRegistryDao bean中的屬性全部注釋掉,或者刪除,
    這個bean中的RegisteredServiceImpl的ignoreAttributes屬性將決定是否添加attributes屬性內容,默認為false:不添加,只有去掉這個配置,
    cas server才會將獲取的用戶的附加屬性添加到認證用的Principal的attributes中去,我在這里犯過這樣的錯誤,最后還是通過跟蹤源碼才發現的。
    <bean
      id="serviceRegistryDao"
            class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl">
            <!--
                <property name="registeredServices">
                    <list>
                        <bean class="org.jasig.cas.services.RegisteredServiceImpl">
                            <property name="id" value="0" />
                            <property name="name" value="HTTP" />
                            <property name="description" value="Only Allows HTTP Urls" />
                            <property name="serviceId" value="http://**" />
                        </bean>

                        <bean class="org.jasig.cas.services.RegisteredServiceImpl">
                            <property name="id" value="1" />
                            <property name="name" value="HTTPS" />
                            <property name="description" value="Only Allows HTTPS Urls" />
                            <property name="serviceId" value="https://**" />
                        </bean>

                        <bean class="org.jasig.cas.services.RegisteredServiceImpl">
                            <property name="id" value="2" />
                            <property name="name" value="IMAPS" />
                            <property name="description" value="Only Allows HTTPS Urls" />
                            <property name="serviceId" value="imaps://**" />
                        </bean>

                        <bean class="org.jasig.cas.services.RegisteredServiceImpl">
                            <property name="id" value="3" />
                            <property name="name" value="IMAP" />
                            <property name="description" value="Only Allows IMAP Urls" />
                            <property name="serviceId" value="imap://**" />
                        </bean>
                    </list>
                </property>-->
               </bean>

     修改WEB-INF\view\jsp\protocol\2.0\casServiceValidationSuccess.jsp文件,如下:

    <%@ page session="false"%>
    <%@ taglib prefix="c" uri=">
    <%@ taglib uri="
    <cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
     <cas:authenticationSuccess>
      <cas:user>${fn:escapeXml(assertion.chainedAuthentications[fn:length(assertion.chainedAuthentications)-1].principal.id)}</cas:user>
      <c:if test="${not empty pgtIou}">
       <cas:proxyGrantingTicket>${pgtIou}</cas:proxyGrantingTicket>
      </c:if>
      <c:if test="${fn:length(assertion.chainedAuthentications) > 1}">
       <cas:proxies>
        <c:forEach var="proxy" items="${assertion.chainedAuthentications}"
         varStatus="loopStatus" begin="0"
         end="${fn:length(assertion.chainedAuthentications)-2}" step="1">
         <cas:proxy>${fn:escapeXml(proxy.principal.id)}</cas:proxy>
        </c:forEach>
       </cas:proxies>
      </c:if>
       <c:if
       test="${fn:length(assertion.chainedAuthentications[fn:length(assertion.chainedAuthentications)-1].principal.attributes)

    >
    0}">
       <cas:attributes>
        <c:forEach
    var="attr"
         items="${assertion.chainedAuthentications[fn:length(assertion.chainedAuthentications)-1].principal.attributes}"
         varStatus="loopStatus"
    begin="0"
         end="${fn:length(assertion.chainedAuthentications[fn:length(assertion.chainedAuthentications)-1].principal.attributes)-1}"
         step="1">
         <cas:${fn:escapeXml(attr.key)}>${fn:escapeXml(attr.value)}</cas:${fn:escapeXml(attr.key)}>
        </c:forEach>
       </cas:attributes>
      </c:if>
     </cas:authenticationSuccess>
    </cas:serviceResponse>
    客戶端配置:
    1.過濾器CAS Validation Filter:
    <filter>
      <filter-name>CAS Validation Filter</filter-name>
      <filter-class> org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
      <init-param>
        <param-name>casServerUrlPrefix</param-name>
        <param-value>http://domainserver:8081/cas</param-value>
      </init-param>
    </filter>
    在客戶端獲取信息
    AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal();
    String loginName = principal.getName();//獲取用戶名
    Map<String, Object> attributes = principal.getAttributes();
    if(attributes != null) {
     System.out.println(attributes.get("userId"));
     System.out.println(attributes.get("passwordHint"));
    }

     


     

    posted @ 2011-01-21 10:06 雪地孤鴻 閱讀(15882) | 評論 (9)編輯 收藏
      2010年12月13日
    最近在使用G2G做項目,開發環境的數據庫為Mysql,在使用grails的分頁組件時沒有任何問題,但是將數據庫切換到ORACLE上就出現了問題,在分頁的時候,記錄總數是對了的,但在進行翻頁的時候,總會有前一頁的數據存在,而當前的數據總是顯示不對,經過將近一天的仔細排查才找到問題的關鍵,主要是由于數據庫的差異引起的,由于的我的查詢不需要進行排序,所以在原來的查詢結果中沒有就排序語句,這就導致在mysql中完全正常的功能,到了oralce中每次查詢的排序不一致,結果就導致在翻頁的時候總有前一頁的數據存在,可能是由于數據庫的引擎規則的不一致導致的。
    再次記下!

    posted @ 2010-12-13 11:15 雪地孤鴻 閱讀(713) | 評論 (0)編輯 收藏
      2010年5月3日
       今天早上出來給老婆大人買早點,騎著老婆大人的小車,在路上奔馳,突然一種思緒飛入腦中,想想自己也是三十多歲的人了,卻是一事無成。我本IT出生,參加工作以來,卻一直徘徊在IT技術的和行業解決方案之間搖擺,最后終于下定決心朝著行業解決方案的方向發展,卻選擇了一個旅游行業,雖說春秋在國內也算的上不錯的旅游公司,但這個行業確實亂象叢生。該公司在信息化方面更是不知所謂,早三暮四。雖然我不應該對公司說三道四,但還是忍不住要說兩句。算了,這個都是我個人的抉擇,我現在是IT技術方面沒有什么看家的本事,行業知識也沒有什么,長此以往,很是危險,隨著年齡的增長,抗風險能力會越來月差,我必須要重新的思考和抉擇,不然真的要落的老婆大人預見的場景了,我自己不甘心這樣,也 不能讓老婆看扁啊。行業的解決方案肯定是我的房展方向,是繼續在這個行業發展,還是重新挑選行業,這是個比較重要的決定,但是不管怎么樣,我的老本行--IT技術也支撐不了幾年了,我必須要反省,深思我過去的規劃和執行,重新規劃和執行,努力的保障家庭幸福的經濟基礎,開拓新的事業。
    今天在這里寫下如此的只言片語,就是為了鞭策自己,不能讓自己在被短期的利益而動搖長期的規劃和執行,年紀也不小了,還沒有一個像樣的事業,以后的風險會越來越大。
    posted @ 2010-05-03 10:35 雪地孤鴻| 編輯 收藏
      2010年3月19日
    最近在試用Grails進行開發一個小項目,需要使用oracle數據庫,我使用的是Oracle 11g,簡單的配置如下:
    1.添加jdbc lib到Grails項目的lib中,我使用的是ojdcb6_g.jar
    2.修改grails生成項目的DataSource.groovy文件中關于DataSource的相關配置:關鍵點是關于hibernate方言的配置,由于grails默認使用的是HSQL內存數據庫,推薦使用的是mysql數據庫;但是在使用oracle數據庫時,需要配置hiernate的方言;其他的如URL,drive,username,password等配置和一般的配置沒有什么區別,詳細配置如下:
    dataSource {
        pooled = true
        driverClassName = "oracle.jdbc.OracleDriver"
        username = "paygateway"
        password = "paygateway"
        dialect = "org.hibernate.dialect.OracleDialect"
           
        logSql = true
    }


    posted @ 2010-03-19 13:38 雪地孤鴻 閱讀(2000) | 評論 (1)編輯 收藏
      2009年12月20日
    公司剛剛買了一臺Thinkpad R400(7445-A63),預裝的vista home basic版本,由于第一次使用thinkpad系列,只是制作了一個start Recovery Disk盤,忘了制作系統恢復光盤,暈倒,不知道聯想能否免費提供哦,那可是俺花銀子買的阿。當時急著想試用一下win7(當然是盜版的),所以就把硬盤格掉了,后來想恢復的時候已經晚了,因為我沒有win7的序列號,沒有辦法,只能重回xp時代了。
       由于硬盤是sata的,安裝過程很是郁悶,開始都引導不了,后來狠狠的google一把,終于搞定了:
      1.進入BIOS-》CONIF,將硬盤的模式修改為compatibility,原來為ACHI
      2.到聯想的官方網站,現在相關xp的驅動(http://think.lenovo.com.cn),網友提供列表如下;我是全部打包下載了:)
         安裝主板芯片組驅動(Intel Chipset Drivers)
    安裝硬盤SATA驅動(Intel Matrix Storage Manager)
    安裝ACPI電源驅動,即Power Manager Driver
    安裝Lenovo System Interface Driver
    啟動系統,系統安裝顯卡驅動
    安裝網卡驅動
    安裝無線驅動
    如果此系統安裝為XP2的系統,那么要安裝MODOM和聲卡的前提是安裝讀卡器(也有人叫HD總線)補丁: KB888111XPSP2.EXE;
    安裝聲卡驅動和補丁
    安裝貓驅動
    安裝藍牙驅動
    安裝讀卡器驅動
    安裝智能讀卡器驅動
    安裝指紋驅動        
    安裝PCI簡易通訊控制器,也就是AMT(INTEL的主動管理技術
    安裝TPM安全芯片的驅動程序
    安裝攝像頭驅動和補丁:7yca02ww.exe,Q909667.rar。
    安裝微軟雙核補丁和其他補丁:KB896256.exe, KB936357.exe, schedulerupdater.exe。
    安裝UltraNav driver
    安裝UltraNav Utility

    3.驅動安裝完成后,重啟機器,進入BIOS,將硬盤模式修改回原來的ACHI模式

    4.不知到何時能用上正中的win7盜版,感覺還是不錯,雖然我平時已經不太用win系統了。:)


    posted @ 2009-12-20 11:25 雪地孤鴻 閱讀(1559) | 評論 (2)編輯 收藏
      2009年9月3日
    ofbiz默認的數據庫為derby,這個當然不能在生產環境中使用,而且也不方便調試和管理。雖然ofbiz也支持很多的開源數據庫,例如mysql等,但是我們這里還是使用主流的數據庫系統oracle 11g.詳細的操作如下
    1.更新JDBC驅動,將oracle最新的jdbc驅動copy到${ofbiz install dir}/framework/entity/lib/jdbc 目錄下。
    2.設置實體引擎( Entity Engine)的缺省數據庫為oracle.在修改 ${ofbiz install dir}/framework/entity/config/entityengine.xml文件中修改配置:
       a.修改數據庫連接參數:
         <datasource name="localoracle"
                helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"
                schema-name="ofbiz" 你的數據庫schema名稱
                field-type-name="oracle"
                check-on-start="true"
                add-missing-on-start="true"
                alias-view-columns="false"
                join-style="ansi">
            <read-data reader-name="seed"/>
            <read-data reader-name="seed-initial"/>
            <read-data reader-name="demo"/>
            <read-data reader-name="ext"/>
            <inline-jdbc
                    jdbc-driver="oracle.jdbc.driver.OracleDriver"
                    jdbc-uri="jdbc:oracle:thin:@192.168.1.154:1521:ofbiz"  ofbiz為你的數據庫SID
                    jdbc-username="ofbiz"  用戶名
                    jdbc-password="ofbiz"  密碼
                    pool-minsize="2"
                    pool-maxsize="250"/>
        </datasource>
      b. 修改實體引擎的數據庫缺省配置如下:(將datasource-name的值設置為“localoracle”)
          <delegator name="default" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" distributed-cache-clear-enabled="false">
            <group-map group-name="org.ofbiz" datasource-name="localoracle"/>
            <group-map group-name="org.ofbiz.olap" datasource-name="localoracle"/>
        </delegator>
        <delegator name="default-no-eca" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" entity-eca-enabled="false" distributed-cache-clear-enabled="false">
            <group-map group-name="org.ofbiz" datasource-name="localoracle"/>
            <group-map group-name="org.ofbiz.olap" datasource-name="localoracle"/>
        </delegator>

        <!-- be sure that your default delegator (or the one you use) uses the same datasource for test. You must run "ant run-install" before running "ant run-tests" -->
        <delegator name="test" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main">
            <group-map group-name="org.ofbiz" datasource-name="localoracle"/>
            <group-map group-name="org.ofbiz.olap" datasource-name="localoracle"/>
        </delegator>
        <delegator name="other" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main">
            <group-map group-name="org.ofbiz" datasource-name="localoracle"/>
        </delegator>
    3.補充:在進行以上配置時,請確保你已經存在ofbiz的數據庫,實例,用戶等都已創建好。
    4. 初始化數據和導入:   
         ofbiz$ java -jar ofbiz.jar -install
    通過以上命令即可進行數據庫的初始化和初始數據的導入,這里包括了ofbiz自帶的例子,應用的所有的數據表和初始化數據

    5.問題:
    在使用oracle數據庫時,當前的版本可能會碰到ORA-01843:無效的月份的問題      

        以sys用戶登陸并創建Trigger:

        create or replace TRIGGER ON_CONNECT AFTER LOGON ON DATABASE
         DECLARE
         guser varchar2(30);
         begin
          SELECT sys_context('USERENV','SESSION_USER') into guser FROM dual;
             if (guser='ofbiz' or guser='OFBIZ') THEN
                EXECUTE IMMEDIATE 'alter session set nls_timestamp_format = ''YYYY-MM-DD HH24:MI:SS.FF''';
             end if;
         end;

    注意對登陸用戶名的判斷必須大小寫都要考慮.

    另:ofbiz用戶不能擁有dba的權限,同時ofbiz用戶比需要有UNLIMITED TABLESPACE的權限,否則在創建數據表的時候會報“數據庫空間不足”的錯誤,導致無法創建表。

    6.參考:
    http://blog.csdn.net/blieveme/archive/2007/10/16/1826604.aspx
    http://docs.ofbiz.org/display/~jacopoc/OFBiz+and+Oracle

    今天就到這里吧,明天繼續:) 
    posted @ 2009-09-03 20:27 雪地孤鴻 閱讀(2613) | 評論 (3)編輯 收藏
    僅列出標題  下一頁
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(17)

    隨筆分類

    隨筆檔案

    文章檔案

    blog

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产免费怕怕免费视频观看| 日韩视频在线免费| 久久久久久a亚洲欧洲AV| 三级黄色片免费看| 国产亚洲AV夜间福利香蕉149| 日本精品久久久久久久久免费 | 亚洲精品中文字幕无乱码麻豆| 久久免费福利视频| 中文字幕亚洲综合精品一区| 免费无码中文字幕A级毛片| 久久精品视频亚洲| 5g影院5g天天爽永久免费影院| 亚洲美女色在线欧洲美女| 免费在线视频你懂的| 亚洲综合久久一本伊伊区| 日韩视频在线免费观看| 一级毛片**免费看试看20分钟| 国外亚洲成AV人片在线观看| 日韩免费在线观看视频| 亚洲乱码日产精品BD在线观看| 在线播放免费播放av片| 在线播放国产不卡免费视频| 亚洲成A∨人片在线观看不卡| 免费无码成人AV在线播放不卡| 亚洲人成在久久综合网站| 日韩免费视频播播| 国产成人无码区免费网站| 亚洲综合在线成人一区| 免费无码又爽又高潮视频| 一个人免费播放在线视频看片| 亚洲AV无码专区电影在线观看 | 国产亚洲精品免费| 亚洲三区在线观看无套内射| 日本在线看片免费人成视频1000| 亚洲熟妇成人精品一区| 亚洲精品V欧洲精品V日韩精品| 波多野结衣在线免费视频 | 青青操免费在线视频| 亚洲中文无码线在线观看| 国产一级淫片视频免费看| 毛片在线播放免费观看|