dihin

          2006年7月24日 #

          cas實現sso注意的2個問題

          弄了一下午的cas安裝終于成功了,,現在將步驟敘述一下
          下載
          ????????
          cas-server-3.0.4.zip??????????????
          http://www.ja-sig.org/downloads/cas/cas-server-3.0.4.zip


          cas-client-2.0.11.zip? http://www.ja-sig.org/downloads/cas-clients/cas-client-2.0.11.zip

          環境為 winxp? tomcat5.5.17? jdk1.5.0_05
          1. 生成服務端證書
          keytool -genkey -alias casserver -keyalg RSA -keystore tomcat.jks
          CN:localhost
          其他的隨便??
          這里要注意姓名必須是服務器的域名 由于我是在本機所以是localhost
          如果不這樣寫就會報如下異常:
          java.io.IOException: HTTPS hostname wrong:? should be <localhost>

          這個異常出現在創建證書的第一個問題 姓名。其實這個“姓名”應該是域名。比如說localhost或是blogjava.net之類的。輸成了姓名,和真正運行的時候域名不符,就會出錯。瀏覽器無所謂,彈出一個對話框,用戶按一下就行了。但http client就直接拋出了異常。--google出來的

          2. 導出證書
          keytool -export -file cas.cer -alias?tomcat -keystore tomcat.jks

          3.把導出的證書導入到jre/lib/security的cacerts中
          這里又有一點要注意的?? 可能由于我的jre在線升級過一次 現在的工作的jre目錄在C:\Program Files\Java\jre1.5.0_06\ 所以要把證書導入到C:\Program Files\Java\jre1.5.0_06\lib\security的cacerts中去
          我一開始就是因為 導入到了%JAVA_HOME%的jre中 結果弄了半天都不成功報異常如下:
          javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

          4.配置tomcat使用ssl
          <Connector port="8443" maxHttpHeaderSize="8192"
          ?????????????? maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
          ?????????????? enableLookups="false" disableUploadTimeout="true"
          ?????????????? acceptCount="100" scheme="https" secure="true"
          ?????????????? clientAuth="false"http://單向SSL
          ?????????????? keystoreFile="C:\tomcat.jks" //我生成的keystore存放在c盤
          ?????????????? sslProtocol="TLS" />

          5.
          部署CAS應用
          ?
          解壓 cas-server-3.0.4.zip, 提取 \target\cas.war 文件,將 cas.war 文件復制到 TOMCAT 的安裝路徑 webapps 下,啟動 TOMCAT ,檢查 CAS
          應用是否正常啟動。

          6.客戶端配置
          下載cas-client-2.0.11.zip

          java/lib/casclient.jar考到 你所發布的webapp的WEB-INF/lib下
          修改WEB-INF/web.xml 在里面添加過濾器
          ??? <filter>
          ??????? <filter-name>CASFilter</filter-name>
          ??????? <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
          ??????? <init-param>
          ?????????? <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
          ?????????? <param-value>https://localhost:8443/cas/login</param-value>
          ??????? </init-param>
          ??????? <init-param>
          ?????????? <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
          ?????????? <param-value>https://localhost:8443/cas/proxyValidate</param-value>
          ??????? </init-param>
          ??????? <init-param>
          ????????? <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
          ????????? <param-value>localhost:8443</param-value>
          ??????? </init-param>
          ??? </filter>
          ???
          ??? <filter-mapping>
          ??????? <filter-name>CASFilter</filter-name>
          ??????? <url-pattern>/*</url-pattern>
          ??? </filter-mapping>

          把里面的localhost換成域名
          8443換成你所使用的端口

          接著連接 https://localhost:8443/app1 ?? //app1是你要實現sso的web應用
          接著頁面就會跳轉到cas的登陸頁面 就像你在第5步看到的頁面一樣
          隨便用一個用戶名登陸 只要 用戶名和密碼一樣就可以登陸
          可以在app2上重復步驟6 這樣只要在app1上登陸后 再連接app2的url就不用再次登陸了
          這就是單點登陸了。

          ?其實是一個很簡單的事情 但是過程中要注意 步驟1和3

          ?

          ?

          ?

          ?


          posted @ 2006-07-24 17:50 狒狒 閱讀(4212) | 評論 (3)編輯 收藏

          2006年6月25日 #

          hibernate操作mysql的blob數據

          package hibernate;

          import java.sql.Blob;

          public class Blobtest  implements java.io.Serializable {

               
          private long id;
               
          private Blob image;

              
          public Blobtest() {
              }


              
          public Blobtest(Blob image) {
                  
          this.image = image;
              }


              
          public long getId() {
                  
          return this.id;
              }

              
              
          public void setId(long id) {
                  
          this.id = id;
              }


              
          public Blob getImage() {
                  
          return this.image;
              }

              
              
          public void setImage(Blob image) {
                  
          this.image = image;
              }

          }
           測試寫入數據:
          package hibernate;

          import java.io.FileInputStream;
          import java.io.IOException;
          import java.io.InputStream;

          import org.hibernate.Hibernate;
          import org.hibernate.Session;
          import org.hibernate.Transaction;

          public class Test {
              
          public static void main(String[] args) throws IOException {
                  InputStream in 
          = new FileInputStream("F:/lzx.jpg");        
                  
          byte[] b = new byte[in.available()];
                  in.read(b);
                  in.close();
                  Blobtest blobTest
          =new Blobtest();

                  blobTest.setImage(Hibernate.createBlob(b));
                  Session session
          =HibernateUtil.currentSession();
                  Transaction tx
          =session.beginTransaction(); 
                  session.save(blobTest); 
                  tx.commit(); 
                  System.out.print(
          "success"); 
                  HibernateUtil.closeSession();
              }

          }

          讀出數據:
          package hibernate;

          import java.io.FileNotFoundException;
          import java.io.FileOutputStream;
          import java.io.IOException;
          import java.io.OutputStream;
          import java.sql.SQLException;

          import org.hibernate.Session;
          import org.hibernate.Transaction;

          public class TestWrite {
              
          public static void main(String[] args) throws IOException, SQLException {
                  Session session
          =HibernateUtil.currentSession();
                  Transaction tx
          =session.beginTransaction();
                  Blobtest blobTest 
          = new Blobtest();
                  blobTest 
          = (Blobtest) session.get(Blobtest.classnew Long(1));
                  System.out.println(
          "qu chu shu ju");
                  OutputStream out 
          = new FileOutputStream("F:/111.jpg");
                  out.write(blobTest.getImage().getBytes(
          1,(int) blobTest.getImage().length()));
                  out.flush();
                  out.close();
                  HibernateUtil.closeSession();
              }

          }

          posted @ 2006-06-25 02:00 狒狒 閱讀(3210) | 評論 (1)編輯 收藏

          僅列出標題  

          My Links

          Blog Stats

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 七台河市| 新乐市| 宁德市| 竹北市| 北京市| 防城港市| 本溪市| 修文县| 江城| 怀安县| 衡阳县| 罗田县| 普格县| 吉木萨尔县| 凤冈县| 平舆县| 湖口县| 宁陵县| 奉新县| 抚顺市| 化隆| 德钦县| 普宁市| 台州市| 黔西| 平南县| 临城县| 谷城县| 阿城市| 阿勒泰市| 滁州市| 林周县| 杭锦旗| 团风县| 永德县| 和顺县| 苍南县| 南岸区| 定边县| 江华| 桦南县|