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

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

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

    czmchen

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      17 隨筆 :: 0 文章 :: 24 評論 :: 0 Trackbacks
    由于開發的需要,要用到xfire,對于開發我比較關心的是安全和速度!所以就找了xfire中的ws-security,利用它的安全證書和key,安全足夠了

    先到網上下載最新版的xfire,一般都去官方網站下載,了解下詳情!其官網為http://xfire.codehaus.org
    現在最新版為1.2.6,把xfire-all-1.2.6.jar xfire-distribution-1.2.6.zip下載

    準備前,先看看ws-securitye的步驟,在http://xfire.codehaus.org/WS-Security里面可以看到,它提示我們installed Unlimited Strength Jurisdiction Policy Files,我就在http://java.sun.com/j2se/1.5.0/download.jsp里面下載兩個包,因為我安裝的是jdk1.6最新版,在http://java.sun.com/j2se/1.5.0/download.jsp最下面的Other Downloads的Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 5.0,點擊下載,下載下來后,按照里面的步驟,把這兩個jar放到
    Java/jre6/lib/security里面,修改java.security,把
    security.provider.6=com.sun.security.sasl.Provider改為
    security.provider.6=org.bouncycastle.jce.provider.BouncyCastleProvider
    其效果為
    security.provider.1=sun.security.provider.Sun
    security.provider.2=sun.security.rsa.SunRsaSign
    security.provider.3=com.sun.net.ssl.internal.ssl.Provider
    security.provider.4=com.sun.crypto.provider.SunJCE
    security.provider.5=sun.security.jgss.SunProvider
    security.provider.6=org.bouncycastle.jce.provider.BouncyCastleProvider
    #security.provider.6=com.sun.security.sasl.Provider
    security.provider.7=org.jcp.xml.dsig.internal.dom.XMLDSigRI
    security.provider.8=sun.security.smartcardio.SunPCSC
    security.provider.9=sun.security.mscapi.SunMSCAPI



    準備工作做好后,解壓xfire-distribution-1.2.6.zip,然后你會看到xfire-1.2.6這個文件夾,進去,你會看到有個examples文件夾,再進去,你就發現很多demo啦,在這里就找到了ws-security的demo

    啟動Myeclipse,看到里面的.classpath和.project文件,這個是eclipse的項目!用myeclipse打開,你發現都不正確,這些錯誤我就不理!

    新建一個Web Progect項目,項目名隨你命名。設置下該項目,點擊該項目,右鍵,properties,找到Java Compiler,修改項目的jdk為1.5以上(里面用到的有注入)!解壓xfire-distribution-1.2.6.zip,進入ws-security文件夾下,進入src下,再進入main的文件夾,把里面的文件全部都拷貝到你新建的項目的src下。點中該項目,右鍵,新建Source Folder,命名為test。后退,找到test的文件夾,把里面的文件全部拷貝到項目test的文件夾下。后退,再把web-inf里面的web.xml拷貝到項目里面,替換。最后在項目中加入jar,在xfire-1.2.6根文件夾下面有個lib,把這些lib全部放到項目的web-inf下的lib文件夾中,把xfire-all-1.2.6.jar也加入到項目中。整個項目的結構為:



    生成key:在ws-security根目錄下有個keys的文件夾,雙擊進去,運行generateServerKey.bat,將默認的key生成。里面的參數讓你們研究,很好用(上面我跳過不安裝j2se1.4就是因為有這個)!生成后,將serverKey.rsa和serverStore.jks扔到META-INF\xfire下,有個相同的那就替換,clientStore.jks同理

    修改服務器參數:在org.codehaus.xfire.client下的BookClient.java,把變量SERVICE_NAMESPACE的值改為
    http://localhost:端口號/上下文路徑/BookService,下面的都同理。要修改到的文件META-INF\xfire下的services.xml。記得把http://xfire.codehaus.org修改為http://localhost:端口號/上下文路徑/BookService。因為http://xfire.codehaus.org不開放那些接口


    修改完畢后,把項目部署到tomcat,啟動服務器后,org.codehaus.xfire.client下運行BookClientEnc.java
    。運行后會報下面的錯誤
    Running client : Encryption Client
    Looking 
    for isbn : 0123456789 .Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xml/utils/URI$MalformedURIException
        at org.apache.ws.security.message.WSSecEncrypt.doEncryption(WSSecEncrypt.java:
    407)
        at org.apache.ws.security.message.WSSecEncrypt.doEncryption(WSSecEncrypt.java:
    399)
        at org.apache.ws.security.message.WSSecEncrypt.encryptForInternalRef(WSSecEncrypt.java:
    306)
        at org.apache.ws.security.message.WSSecEncrypt.build(WSSecEncrypt.java:
    264)
        at org.apache.ws.security.action.EncryptionAction.execute(EncryptionAction.java:
    62)
        at org.apache.ws.security.handler.WSHandler.doSenderAction(WSHandler.java:
    192)
        at org.codehaus.xfire.security.wss4j.WSS4JOutHandler.invoke(WSS4JOutHandler.java:
    158)
        at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:
    131)
        at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:
    79)
        at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:
    114)
        at org.codehaus.xfire.client.Client.invoke(Client.java:
    336)
        at org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:
    77)
        at org.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:
    57)
        at $Proxy0.findBook(Unknown Source)
        at org.codehaus.xfire.client.BookClient.executeClient(BookClient.java:
    63)
        at org.codehaus.xfire.client.BookClientEnc.main(BookClientEnc.java:
    23)
    Caused by: java.lang.ClassNotFoundException: org.apache.xml.utils.URI$MalformedURIException
        at java.net.URLClassLoader$
    1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
         
    16 more

    這是因為你還沒把xalan.jar加入去,到http://www.apache.org/dyn/closer.cgi/xml/xalan-j 下載最新版
    ,現在最新去到2_7_1,找到xalan-j_2_7_1-bin.zip,把其下載后,添加xalan.jar到項目

    再運行,如果出現下面的結果,那就正常啦
    Running client : Encryption Client
    Looking for isbn : 0123456789 ....Using XFire : Dan Diephouse


    我的做好的示例文件在http://www.tkk7.com/Files/czmchen/ws-security.rar可以下載,下載后要做的事情就是把jar按上面的方法加進去,因為jar太大了,上傳不上!還有要改下tomcat的端口為8001,再部署項目

    posted on 2010-01-15 09:51 陳周敏 閱讀(1576) 評論(0)  編輯  收藏 所屬分類: web service

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 免费日本一区二区| 国产人成网在线播放VA免费| 国内精品久久久久影院免费| 在线观看亚洲精品福利片| 又硬又粗又长又爽免费看 | 国产午夜免费秋霞影院| 亚洲AV无码无限在线观看不卡| 亚洲性线免费观看视频成熟| 亚洲人成高清在线播放| 99精品全国免费观看视频 | 国产午夜亚洲精品不卡免下载| 国产成人免费片在线观看| 男女超爽视频免费播放| 久久精品国产精品亚洲人人| 国产精品美女免费视频观看| 国产成人A人亚洲精品无码| 日韩在线不卡免费视频一区| 亚洲国产精品成人精品软件| 黄色成人网站免费无码av| 337P日本欧洲亚洲大胆精品| 亚洲午夜精品久久久久久浪潮| 99re6在线视频精品免费| 婷婷精品国产亚洲AV麻豆不片 | 9420免费高清在线视频| 亚洲六月丁香六月婷婷色伊人| 成人免费无遮挡无码黄漫视频| 色偷偷亚洲男人天堂| 亚洲一区二区三区影院| 在线免费观看亚洲| 亚洲av无码偷拍在线观看| 亚洲国产成人VA在线观看 | 久久天天躁狠狠躁夜夜免费观看| 亚洲日韩国产二区无码| 久久亚洲精品无码观看不卡| 99久久免费中文字幕精品| 亚洲人成色在线观看| 在线播放亚洲第一字幕| 成年男女男精品免费视频网站| 一区二区免费国产在线观看| 亚洲黄色网址在线观看| 国产免费131美女视频|