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

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

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

    David.Turing's blog

     

    [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J)

    鑒于很多系統(tǒng)需要實(shí)施WS-Security的標(biāo)準(zhǔn),我們?cè)赟pringSide中提供了XFire+WSS4J的Demo,本文介紹SpringSide中Spring+XFire+WSS4J的基本配置

    [WebService Server端配置]
    第一,創(chuàng)建一個(gè)基本的BookService
    public?interface?BookService?{
    ????
    /**
    ?????*?按書名模糊查詢圖書
    ?????
    */

    ????List?findBooksByName(String?name);

    ????
    /**
    ?????*?查找目錄下的所有圖書
    ?????*
    ?????*?
    @param?categoryId?如果category為null或“all”,?列出所有圖書。
    ?????
    */

    ????List?findBooksByCategory(String?categoryId);

    ????
    /**
    ?????*?列出所有分類.
    ?????*
    ?????*?
    @return?List<Category>,或是null。
    ?????
    */

    ????List?getAllCategorys();
    }

    第二,接口擴(kuò)展,即Extend基本的BookService,在XFire中,不同的WSS4J策略需要針對(duì)不同的ServiceClass,否則<inHandlers>里面的定義會(huì)Overlap。
    public?interface?BookServiceWSS4JEnc??extends?BookService?{

    }

    public?interface?BookServiceWSS4JSign??extends?BookService?{

    }

    第三,配置Spring的ApplicationContext文件
    ????<!--BookService?基類-->
    ????
    <bean?id="baseWebService"?class="org.codehaus.xfire.spring.remoting.XFireExporter"?abstract="true">
    ????????
    <property?name="serviceFactory"?ref="xfire.serviceFactory"/>
    ????????
    <property?name="xfire"?ref="xfire"/>
    ????
    </bean>

    ????
    <bean?class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    ????????
    <property?name="mappings">
    ????????????
    <value>
    ????????????????/BookService=bookService
    ????????????????/BookServiceWSS4J=bookServiceWSS4J
    ????????????????/BookServiceWSS4JEnc=bookServiceWSS4JEnc
    ????????????????/BookServiceWSS4JSign=bookServiceWSS4JSign
    ????????????
    </value>
    ????????
    </property>
    ????
    </bean>

    ???
    <!--(1)BookWebService?不需要認(rèn)證-->
    ????
    <bean?id="bookService"?class="org.codehaus.xfire.spring.remoting.XFireExporter">
    ????????
    <property?name="serviceFactory"?ref="xfire.serviceFactory"/>
    ????????
    <property?name="xfire"?ref="xfire"/>
    ????????
    <property?name="serviceBean"?ref="bookManager"/>
    ????????
    <property?name="serviceClass"?value="org.springside.bookstore.plugins.xfire.service.BookService"/>
    ????
    </bean>

    ????
    <!--??(3)BookWebService?使用?WSS4J驗(yàn)證-->
    ????
    <bean?id="bookServiceWSS4J"?class="org.codehaus.xfire.spring.remoting.XFireExporter">
    ????????
    <property?name="serviceBean"?ref="bookManager"/>
    ????????
    <property?name="serviceClass"?value="org.springside.bookstore.plugins.xfire.service.BookServiceWSS4J"/>
    ????????
    <property?name="inHandlers">
    ????????????
    <list>
    ????????????????
    <ref?bean="domInHandler"/>
    ????????????????
    <ref?bean="wss4jInHandler"/>
    ????????????????
    <ref?bean="validateUserTokenHandler"/>
    ????????????
    </list>
    ????????
    </property>
    ????
    </bean>

    ????
    <bean?id="domInHandler"?class="org.codehaus.xfire.util.dom.DOMInHandler"/>

    ????
    <bean?id="wss4jInHandler"?class="org.codehaus.xfire.security.wss4j.WSS4JInHandler">
    ????????
    <property?name="properties">
    ????????????
    <props>
    ????????????????
    <prop?key="action">UsernameToken</prop>
    ????????????????
    <prop?key="passwordCallbackClass">org.springside.bookstore.plugins.xfire.wss4j.PasswordHandler</prop>
    ????????????
    </props>
    ????????
    </property>
    ????
    </bean>

    ????
    <bean?id="validateUserTokenHandler"?class="org.springside.bookstore.plugins.xfire.wss4j.WSS4JTokenHandler"/>
    ????
    ????
    <!--??(4)BookWebService?使用?WSS4J驗(yàn)證?Encrypt模式-->
    ????
    <bean?id="bookServiceWSS4JEnc"?class="org.codehaus.xfire.spring.remoting.XFireExporter">
    ????????
    <property?name="serviceBean"?ref="bookManager"/>
    ????????
    <property?name="serviceClass"?value="org.springside.bookstore.plugins.xfire.service.BookServiceWSS4JEnc"/>
    ????????
    <property?name="inHandlers">
    ????????????
    <list>
    ????????????????
    <ref?bean="domInHandler"/>
    ????????????????
    <ref?bean="wss4jInHandlerEnc"/>
    ????????????????
    <ref?bean="validateUserTokenHandler"/>
    ????????????
    </list>
    ????????
    </property>
    ????
    </bean>
    ????????
    ????
    <bean?id="wss4jInHandlerEnc"?class="org.codehaus.xfire.security.wss4j.WSS4JInHandler">
    ????????
    <property?name="properties">
    ??????????
    <props>
    ????????????
    <prop?key="action">Encrypt</prop>
    ????????????
    <prop?key="decryptionPropFile">org/springside/bookstore/plugins/xfire/wss4j/insecurity_enc.properties</prop>
    ????????????
    <prop?key="passwordCallbackClass">org.springside.bookstore.plugins.xfire.wss4j.PasswordHandler</prop>
    ??????????
    </props>
    ????????
    </property>
    ????
    </bean>
    ????
    ????
    <!--??(5)BookWebService?使用?WSS4J驗(yàn)證?Signature模式-->
    ????
    <bean?id="bookServiceWSS4JSign"?class="org.codehaus.xfire.spring.remoting.XFireExporter">
    ????????
    <property?name="serviceBean"?ref="bookManager"/>
    ????????
    <property?name="serviceClass"?value="org.springside.bookstore.plugins.xfire.service.BookServiceWSS4JSign"/>
    ????????
    <property?name="inHandlers">
    ????????????
    <list>
    ????????????????
    <ref?bean="domInHandler"/>
    ????????????????
    <ref?bean="wss4jInHandlerSign"/>
    ????????????????
    <ref?bean="validateUserTokenHandler"/>
    ????????????
    </list>
    ????????
    </property>
    ????
    </bean>
    ????
    ????
    <bean?id="wss4jInHandlerSign"?class="org.codehaus.xfire.security.wss4j.WSS4JInHandler">
    ????????
    <property?name="properties">
    ??????????
    <props>
    ????????????
    <prop?key="action">Signature</prop>
    ????????????
    <prop?key="signaturePropFile">org/springside/bookstore/plugins/xfire/wss4j/insecurity_sign.properties</prop>
    ????????????
    <prop?key="passwordCallbackClass">org.springside.bookstore.plugins.xfire.wss4j.PasswordHandler</prop>
    ??????????
    </props>
    ????????
    </property>
    ????
    </bean>
    ????
    </beans>

    第四,配置insecurity_enc.properties和insecurity_sign.properties兩個(gè)密鑰庫(kù)配置文件
    insecurity_enc.properties:
    org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
    org.apache.ws.security.crypto.merlin.keystore.type
    =jks
    org.apache.ws.security.crypto.merlin.keystore.password
    =SpringSide
    org.apache.ws.security.crypto.merlin.alias.password
    =SpringSide
    org.apache.ws.security.crypto.merlin.keystore.alias
    =david
    org.apache.ws.security.crypto.merlin.file
    =org/springside/bookstore/plugins/xfire/wss4j/springside_private.jks

    outsecurity_sign.properties:
    org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
    org.apache.ws.security.crypto.merlin.keystore.type
    =jks
    org.apache.ws.security.crypto.merlin.keystore.password
    =SpringSide
    org.apache.ws.security.crypto.merlin.keystore.alias
    =david
    org.apache.ws.security.crypto.merlin.file
    =org/springside/bookstore/plugins/xfire/wss4j/springside_public.jks

    第五,使用SecureX生成了兩個(gè)keystore文件
    springside_private.jks
    別名名稱:?david
    創(chuàng)建日期:?
    2006-8-6
    輸入類型:KeyEntry
    認(rèn)證鏈長(zhǎng)度:?
    1
    認(rèn)證?
    [1]:
    Owner:?CN
    =david,?OU=SpringSide,?O=org,?L=gz,?ST=gd,?C=cn
    發(fā)照者:?CN
    =david,?OU=SpringSide,?O=org,?L=gz,?ST=gd,?C=cn
    序號(hào):?44d4cdcd
    有效期間:?Sun?Aug?
    06?00:56:45?CST?2006?至:?Mon?Aug?06?00:56:45?CST?2007
    認(rèn)證指紋:
    ?????????MD5:??CF:
    97:13:0C:70:D0:4D:B6:B4:27:0F:1A:0B:CF:D9:F2
    ?????????SHA1:?8E:8E:E8:BC:
    64:39:C8:43:E4:F7:1B:3B:CE:48:1D:6B:A0:2B:58:B5

    springside_public.jks
    別名名稱:?david
    創(chuàng)建日期:?
    2006-8-6
    輸入類型:?trustedCertEntry

    Owner:?CN
    =david,?OU=SpringSide,?O=org,?L=gz,?ST=gd,?C=cn
    發(fā)照者:?CN
    =david,?OU=SpringSide,?O=org,?L=gz,?ST=gd,?C=cn
    序號(hào):?44d4cdcd
    有效期間:?Sun?Aug?
    06?00:56:45?CST?2006?至:?Mon?Aug?06?00:56:45?CST?2007
    認(rèn)證指紋:
    ?????????MD5:??CF:
    97:13:0C:70:D0:4D:B6:B4:27:0F:1A:0B:CF:D9:F2
    ?????????SHA1:?8E:8E:E8:BC:
    64:39:C8:43:E4:F7:1B:3B:CE:48:1D:6B:A0:2B:58:B5

    第五,新版本SpringSide需要
    http://www.bouncycastle.org/download/bcprov-jdk15-133.jar
    并且要配置java.security
    另外,還要使用jdk加密增強(qiáng)策略
    http://www.tkk7.com/openssl/archive/2006/03/08/34381.html

    用戶要使用WSS4J,需要配置Bouncycastle這個(gè)SecurityProvider,否則
    運(yùn)行Enc模式的XFire認(rèn)證的時(shí)候,會(huì)拋出異常:
    org.apache.ws.security.WSSecurityException: An unsupported signature or encryption algorithm was used unsupported key
    配合java.security也是非常簡(jiǎn)單:
    在最后加入BouncycastleProvider。
    security.provider.1=sun.security.provider.Sun
    security.provider.2=com.sun.net.ssl.internal.ssl.Provider
    security.provider.3=com.sun.rsajca.Provider
    security.provider.4=com.sun.crypto.provider.SunJCE
    security.provider.5=sun.security.jgss.SunProvider
    security.provider.6=org.bouncycastle.jce.provider.BouncyCastleProvider

    [WebService Client端配置]
    1,Encrypt模式的Client是在客戶端用david的公鑰加密Soap里面的usernameToken,然后發(fā)送到Web服務(wù),Web服務(wù)用david的私鑰來(lái)驗(yàn)證。這種模式需要客戶端預(yù)先知道服務(wù)器端的公鑰。

    在Encrypt模式中,需要這樣配置ClientHandler:
    ????????Service?serviceModel?=?new?ObjectServiceFactory().create(BookServiceWSS4JEnc.class);
    ????????XFireProxyFactory?factory?
    =?new?XFireProxyFactory(getXFire());

    ????????BookService?service?
    =?(BookService)?factory.create(serviceModel,?"xfire.local://BookServiceWSS4JEnc");

    ????????Client?client?
    =?((XFireProxy)?Proxy.getInvocationHandler(service)).getClient();
    ????????
    //掛上WSS4JOutHandler,提供認(rèn)證
    ????????client.addOutHandler(new?DOMOutHandler());
    ????????Properties?properties?
    =?new?Properties();
    ????????configureOutProperties(properties);
    ????????client.addOutHandler(
    new?WSS4JOutHandler(properties));

    ????????List?list?
    =?service.getAllCategorys();
    configureOutProperties函數(shù)負(fù)責(zé)指定Client使用何種安全策略,沒(méi)錯(cuò),使用outsecurity_enc.properties,這個(gè)properties是跟Server端的insecurity_enc.properties一起使用的。
    ????protected?void?configureOutProperties(Properties?config)?{
    ????????config.setProperty(WSHandlerConstants.ACTION,?WSHandlerConstants.ENCRYPT);
    ????????config.setProperty(WSHandlerConstants.USER,?
    "david");
    ????????
    //config.setProperty(WSHandlerConstants.PW_CALLBACK_CLASS,?PasswordHandler.class.getName());
    ????????
    //Configuration?of?public?key?used?to?encrypt?message?goes?to?properties?file.
    ????????config.setProperty(WSHandlerConstants.ENC_PROP_FILE,
    ???????????????????????????????
    "org/springside/bookstore/plugins/xfire/outsecurity_enc.properties");
    ????}

    outsecurity_enc.properties:
    org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
    org.apache.ws.security.crypto.merlin.keystore.type
    =jks
    org.apache.ws.security.crypto.merlin.keystore.password
    =SpringSide
    org.apache.ws.security.crypto.merlin.keystore.alias
    =david
    org.apache.ws.security.crypto.merlin.file
    =org/springside/bookstore/plugins/xfire/wss4j/springside_public.jks


    2, Sign模式的Client同樣也是很簡(jiǎn)單,這種模式是Client端用自己的私鑰為usernameToken簽名,服務(wù)器端用Client的公鑰來(lái)驗(yàn)證簽名,因此,服務(wù)器端需要預(yù)先知道客戶端的公鑰。
    對(duì)應(yīng)于Encrypt模式,這里的configureOutProperties需要這樣來(lái)配置:
    ????protected?void?configureOutProperties(Properties?properties)?{
    ????????properties.setProperty(WSHandlerConstants.ACTION,WSHandlerConstants.SIGNATURE);
    ????????
    //?User?in?keystore
    ????????properties.setProperty(WSHandlerConstants.USER,?"david");
    ????????
    //?This?callback?is?used?to?specify?password?for?given?user?for?keystore
    ????????properties.setProperty(WSHandlerConstants.PW_CALLBACK_CLASS,?PasswordHandler.class.getName());
    ????????
    //?Configuration?for?accessing?private?key?in?keystore
    ????????properties.setProperty(WSHandlerConstants.SIG_PROP_FILE,"org/springside/bookstore/plugins/xfire/outsecurity_sign.properties");
    ????????properties.setProperty(WSHandlerConstants.SIG_KEY_ID,
    "IssuerSerial");
    ????}


    outsecurity_sign.properties:
    org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
    org.apache.ws.security.crypto.merlin.keystore.type
    =jks
    org.apache.ws.security.crypto.merlin.keystore.password
    =SpringSide
    org.apache.ws.security.crypto.merlin.alias.password
    =SpringSide
    org.apache.ws.security.crypto.merlin.keystore.alias
    =david
    org.apache.ws.security.crypto.merlin.file
    =org/springside/bookstore/plugins/xfire/wss4j/springside_private.jks

    posted on 2006-08-08 09:09 david.turing 閱讀(22400) 評(píng)論(42)  編輯  收藏 所屬分類: Security領(lǐng)域

    評(píng)論

    # re: 實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2006-08-08 09:17 江南白衣

    酷,XFire終于足夠安全,不用再公司項(xiàng)目那樣,靠防火墻過(guò)濾IP白名單了:)  回復(fù)  更多評(píng)論   

    # re: 實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2006-08-08 11:40 david.turing

    理論上,Sign模式適合分發(fā)型的Webservice結(jié)構(gòu),舉一個(gè)例子,Microsoft公司有一個(gè)能夠計(jì)算股市走勢(shì)的WebService,他當(dāng)然不希望授權(quán)才能訪問(wèn),于是,他要求調(diào)用方為每個(gè)Soap請(qǐng)求簽名,這樣他可以確保購(gòu)買了服務(wù)的人才能享受此服務(wù)

    Encrypt模式適合集中式的WebService結(jié)構(gòu),舉一個(gè)例子,中國(guó)最高人民檢察院提供一個(gè)WebService服務(wù),它希望民間團(tuán)體能夠向政府舉證揭發(fā)貪污腐敗的官員,于是,他公布了自己的keystore,其中包含了私鑰,于是,民間團(tuán)體可以通過(guò)Encrypt模式加密一些比較私隱的信息(Username),Only檢察院才能解密(因?yàn)樗麄冇兴借€)。  回復(fù)  更多評(píng)論   

    # re: 實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2006-08-08 16:14 向大家學(xué)習(xí)

    david研究AXIS2沒(méi)有?  回復(fù)  更多評(píng)論   

    # re: 實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2006-08-08 16:28 david.turing

    我和白衣都是從Axis2轉(zhuǎn)移到XFire,僅僅因?yàn)閄Fire是build on在Spring之上,集成Spring更容易。  回復(fù)  更多評(píng)論   

    # re: 實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2006-08-09 23:07 向大家學(xué)習(xí)

    david寫篇wss4j中使用opensaml的文章,網(wǎng)上都找不到相關(guān)文章  回復(fù)  更多評(píng)論   

    # re: 實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2006-08-11 08:40 david.turing

    好建議,我打算做一個(gè)Weblogic 9.2和XFire SAML的SSO Demo  回復(fù)  更多評(píng)論   

    # re: 實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2006-08-11 14:30 向大家學(xué)習(xí)

    代表人民感謝你了,只是我用的是AXIS2,很期待你的作品。  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2006-09-06 02:24 shuangxi

    Hi, I have a question regarding to the exception handling. In my app,
    the server encrypt the message before sending to client. But when
    exception occurs, the client doesn't seem to be able to read the fault,
    here is the stacktrace:

    org.codehaus.xfire.fault.XFireFault: WSS4JInHandler: Request does not contain required Security header
    at org.codehaus.xfire.security.wss4j.WSS4JInHandler.invoke(WSS4JInHandler.java:159)
    at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:110)
    at org.codehaus.xfire.client.Client.onReceive(Client.java:382)
    ....

    Have you experiencing the same problem?

    thanks,  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2006-09-06 10:21 david.turing

    it seems that you have not correctly config the xfire configuration.
    I meant that if you use Sign-Mode, you should not use the Encrypt-Mode Handler

    Carefully check the configuration
    <bean id="wss4jInHandlerSign" class="org.codehaus.xfire.security.wss4j.WSS4JInHandler">
    <property name="properties">
    <props>
    <prop key="action">Signature</prop>
    <prop key="signaturePropFile">org/springside/bookstore/plugins/xfire/wss4j/insecurity_sign.properties</prop>
    <prop key="passwordCallbackClass">org.springside.bookstore.plugins.xfire.wss4j.PasswordHandler</prop>
    </props>
    </property>
    </bean>

    check the "Signature" and "signaturePropFile". Be Sure not to confuss by "Encrypt" and "decryptionPropFile".  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2006-10-13 12:59 guofeng

    很高興國(guó)內(nèi)有這樣的作品,不過(guò)我做了WS-Security測(cè)試, Signature簽名這個(gè)例子走不通,遇到異常:
    org.codehaus.xfire.fault.XFireFault: WSHandler: Signature: error during message processing org.apache..ws.security.WSSecurityException:Signature creation failed; nested exception is: java.lang.NullPointerException
    我很希望能夠得到您的指點(diǎn)在WS-Security方面。非常感謝!  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2006-10-27 12:53 david.turing

    Debug一下,我在SpringSide2提供了一個(gè)測(cè)試的使用類,去借鑒一下?  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2007-01-12 13:24 三石

    兩種方式按照例子都調(diào)通了,不過(guò)現(xiàn)在有個(gè)問(wèn)題,我的客戶端是通過(guò)wsdl用XFire的wsgen生成的,生成了3個(gè)文件:BookServiceClient.java/BookServiceImpl.java/BookServicePortType.java,仍然用例子中的代碼,只是把BookService改成了BookServicePortType,其他基本沒(méi)變.
    發(fā)布的方法如果返回的是基本類型,能正常訪問(wèn)到.如果返回的是對(duì)象,客戶端就會(huì)報(bào)錯(cuò)org.codehaus.xfire.fault.XFireFault: Couldn't instantiate class. javax.xml.bind.JAXBElement.如果返回的是List,客戶端不報(bào)錯(cuò),但List的size為0
    對(duì)于復(fù)雜對(duì)象應(yīng)該怎么處理?用wsgen生成的客戶端如何才能和WS security關(guān)聯(lián)起來(lái)?  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2007-03-09 15:21 lodzio

    http://www.filmati-sadomaso.irsuto.info @X@   回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2007-05-10 18:26 王金柱

    使用WSS4J,配置Bouncycastle這個(gè)SecurityProvider時(shí),不用更改jdk中的java.security.直接將包bcprov-jdk16-136.jar導(dǎo)入工程即可.下載地址是http://www.bouncycastle.org/

      回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2007-05-10 18:31 王金柱

    最近作網(wǎng)關(guān)的安全性功能.david關(guān)于WS-Security的文章講得非常好.對(duì)我的
    幫助很大.謝謝~~~~~  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2007-05-11 10:21 csnowfox

    不錯(cuò)不錯(cuò),我也附上我的客戶端中使用spring的Sign模式配置
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans default-autowire="byName">
    <bean id="xFireClientFactoryBean"
    class="org.codehaus.xfire.spring.remoting.XFireClientFactoryBean">
    <property name="serviceClass">
    <value>org.cmb.webservice.service.Transaction</value>
    </property>
    <property name="wsdlDocumentUrl">
    <value>http://localhost:9090/transaction.ser?wsdl</value>
    </property>
    <property name="outHandlers">
    <list>
    <ref bean="domOutHandler" />
    <ref bean="wss4jOutHandlerSign" />
    </list>
    </property>
    </bean>
    <bean id="domOutHandler"
    class="org.codehaus.xfire.util.dom.DOMOutHandler" />
    <bean id="wss4jOutHandlerSign"
    class="org.codehaus.xfire.security.wss4j.WSS4JOutHandler">
    <property name="properties">
    <props>
    <prop key="action">Signature</prop>
    <prop key="user">ws_security</prop>
    <prop key="passwordCallbackClass"> org.cmb.client.web.util.PasswordHandler
    </prop>
    <prop key="signaturePropFile"> org/cmb/client/web/util/insecurity.properties
    </prop>
    <prop key="signatureKeyIdentifie">IssuerSerial</prop>
    </props>
    </property>
    </bean>
    </beans>  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J)[未登錄](méi) 2007-05-24 17:14 kevin

    有個(gè)問(wèn)題想要問(wèn)一下:
    一個(gè)webservices的發(fā)布接口,既要簽名又要加密該怎么配置?
    意思就是客戶端的請(qǐng)求需要用自己的私鑰簽名,用服務(wù)端的公鑰加密,服務(wù)端用客戶端的公鑰驗(yàn)證簽名,用自己的私鑰解密  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2007-05-30 13:39 王金拄

    和只作加密或只作簽名時(shí)的方法基本一樣。
    例如:
    在服務(wù)端配置:
    <!-- (6)BookWebService 使用 WSS4J驗(yàn)證 Encrypt & Signature模式-->
    <bean id="bookServiceWSS4JSignEnc" class="org.codehaus.xfire.spring.remoting.XFireExporter">
    <property name="serviceBean" ref="bookManager"/>
    <property name="serviceClass" value="org.springside.bookstore.plugins.xfire.service.BookServiceWSS4JSignEnc"/>
    <property name="inHandlers">
    <list>
    <ref bean="domInHandler"/>
    <ref bean="wss4jInHandlerSignEnc"/>
    <ref bean="validateUserTokenHandler"/>
    </list>
    </property>
    </bean>

    <bean id="wss4jInHandlerSignEnc" class="org.codehaus.xfire.security.wss4j.WSS4JInHandler">
    <property name="properties">
    <props>
    <prop key="action">Encrypt Signature</prop>
    <prop key="signaturePropFile">org/springside/bookstore/plugins/xfire/wss4j/insecurity_sign.properties</prop>
    <prop key="decryptionPropFile">org/springside/bookstore/plugins/xfire/wss4j/insecurity_enc.properties</prop>
    <prop key="passwordCallbackClass">org.springside.bookstore.plugins.xfire.wss4j.PasswordHandler</prop>
    </props>
    </property>
    </bean>

    </beans>

    客戶端也作相應(yīng)的修改即可。
    注意:1.客戶端在配置WSHandlerConstants.ACTION時(shí),Encrypt Signature的順序不能寫反。
    2.用于加密和簽名的密鑰對(duì)最好配置成獨(dú)立的兩對(duì)。  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2007-05-30 16:35 王金拄

    @kevin
    在xfire-distribution-1.2.6中的example文件夾中有個(gè)ws-security例子。也可以借鑒一下。  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2007-05-31 08:59 yanghuw

    我寫Client代碼調(diào)用時(shí)為什么拋出異常,說(shuō)NamespaceURI cannot be null.  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2007-06-01 18:27 王金拄

    可能是你的服務(wù)端設(shè)置了命名空間而客戶端沒(méi)有設(shè)置命名空間。
    要把服務(wù)端和客戶端都的命名空間設(shè)置成相同的。或者都用默認(rèn)的  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2007-06-03 14:39 sdfa

    能和acegi集成實(shí)現(xiàn)安全認(rèn)證?  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2007-06-04 12:05 yanghuw

    我沒(méi)有指定命名空間,如果返回的對(duì)象的所有屬性都是基本類型的話沒(méi)有問(wèn)題,但是如果屬性包含別的對(duì)象就會(huì)拋出異常
      回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2007-06-11 11:04 nesta

    為什么我的老是報(bào)這個(gè)錯(cuò)誤呢?我使用的是1.26版的。
    2007-06-11 10:59:12,640 ERROR - Servlet.service() for servlet jsp threw excepti
    on
    java.lang.IllegalStateException: getOutputStream() has already been called for t
    his response
    at org.apache.catalina.connector.Response.getWriter(Response.java:599)
    at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade
    .java:195)
    at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:12
    4)
    at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.jav
    a:117)
    at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.jav
    a:191)
    at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(J
    spFactoryImpl.java:115)
    at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactor
    yImpl.java:75)
    at org.apache.jsp.image_jsp._jspService(image_jsp.java:129)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper
    .java:332)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:3
    14)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
    icationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
    ilterChain.java:173)
    at com.syscanhc.tjy.util.SetCharacterEncodingFilter.doFilter(SetCharacte
    rEncodingFilter.java:171)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
    icationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
    ilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
    alve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
    alve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
    ava:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
    ava:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
    ve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
    a:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
    :869)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.p
    rocessConnection(Http11BaseProtocol.java:664)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpo
    int.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFol
    lowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
    ool.java:684)
    at java.lang.Thread.run(Thread.java:595)  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2007-06-12 20:26 ntucz

    .net有可能調(diào)用ws-security啊?  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J)[未登錄](méi) 2007-08-29 11:05 Neil

    insecurity_sign.properties
    這個(gè)文件沒(méi)有呀  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2007-09-27 11:29 null

    好像是xfire帶的例子的子集  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2007-10-11 16:20 yd

    " Encrypt模式的Client是在客戶端用david的公鑰加密Soap里面的usernameToken,然后發(fā)送到Web服務(wù),Web服務(wù)用david的私鑰來(lái)驗(yàn)證。這種模式需要客戶端預(yù)先知道服務(wù)器端的公鑰。"
    encrypt模式是對(duì)usernameToken加密還是對(duì)整個(gè)soap消息加密?如過(guò)是前者,那如何對(duì)整個(gè)soap消息加密來(lái)保證消息的安全性呢?  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2007-12-23 14:19 srvrv12

    我在Sign的模式下一直出現(xiàn)
    Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: WSS4JInHandler: security processing failed
    但在Enc的模式下卻是正常的,我檢查過(guò)所有的配置及寫法都是正確的,請(qǐng)問(wèn)一下問(wèn)題可能出在那裡?

    另外,我用Enc的模式在 TCP/IP Monitor裡進(jìn)行觀查,發(fā)現(xiàn)Client所發(fā)出的訊息是有加密,但Server端所回覆的卻是明碼,請(qǐng)問(wèn)我如何進(jìn)行加密? thanks~~  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J)[未登錄](méi) 2007-12-29 11:38 MagicYang

    樓上的第二個(gè)問(wèn)題應(yīng)該是沒(méi)有配置outHandlers
    <bean id="bookServiceWSS4JEnc" class="org.codehaus.xfire.spring.remoting.XFireExporter">
    <property name="serviceBean" ref="bookManager"/>
    <property name="serviceClass" value="org.springside.bookstore.plugins.xfire.service.BookServiceWSS4JEnc"/>
    <property name="inHandlers">
    <list>
    <ref bean="domInHandler"/>
    <ref bean="wss4jInHandlerEnc"/>
    <ref bean="validateUserTokenHandler"/>
    </list>
    </property>
    <property name="outHandlers">
    <list>
    ...
    </list>
    </property>
    </bean>  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J)[未登錄](méi) 2008-01-15 13:05 bruce

    寫的不錯(cuò)!  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J)[未登錄](méi) 2008-01-15 16:55 william

    16:47:32,875 DEBUG [org.codehaus.xfire.handler.HandlerPipeline] Invoking handler org.codehaus.xfire.soap.handler.ValidateHeadersHandler in phase pre-invoke
    16:47:32,906 INFO [org.codehaus.xfire.handler.DefaultFaultHandler] Fault occurred!
    org.codehaus.xfire.fault.XFireFault: Header {Security}http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd was not undertsood by the service.
    at org.codehaus.xfire.soap.handler.ValidateHeadersHandler.assertUnderstandsHeader(ValidateHeadersHandler.java:76)
    at org.codehaus.xfire.soap.handler.ValidateHeadersHandler.invoke(ValidateHeadersHandler.java:53)
    at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
    at org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:64)
    at org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38)
    at org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:304)
    at org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:129)
    at org.codehaus.xfire.transport.http.XFireServlet.doPost(XFireServlet.java:116)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:413)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
    at java.lang.Thread.run(Thread.java:595)  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J)[未登錄](méi) 2008-01-15 16:56 william

    誰(shuí)能告訴我這個(gè)異常是為什么啊?斑竹在嗎?  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J)[未登錄](méi) 2008-01-15 16:56 william

    16:47:32,875 DEBUG [org.codehaus.xfire.handler.HandlerPipeline] Invoking handler org.codehaus.xfire.soap.handler.ValidateHeadersHandler in phase pre-invoke
    16:47:32,906 INFO [org.codehaus.xfire.handler.DefaultFaultHandler] Fault occurred!
    org.codehaus.xfire.fault.XFireFault: Header {Security}http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd was not undertsood by the service.
    at org.codehaus.xfire.soap.handler.ValidateHeadersHandler.assertUnderstandsHeader(ValidateHeadersHandler.java:76)
    at org.codehaus.xfire.soap.handler.ValidateHeadersHandler.invoke(ValidateHeadersHandler.java:53)
    at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
    at org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:64)
    at org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38)
    at org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:304)
    at org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:129)
    at org.codehaus.xfire.transport.http.XFireServlet.doPost(XFireServlet.java:116)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:413)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
    at java.lang.Thread.run(Thread.java:595)  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J)[未登錄](méi) 2008-01-18 16:31 william

    斑竹能給我一個(gè)完整的例子嗎?例如怎么配置services.xml文件,怎么和SPRING 整合,怎么生成私鑰和公鑰和證書等等,還有怎么通過(guò)SOAP HEADER來(lái)認(rèn)證的,怎么通過(guò)SESSION認(rèn)證,怎么實(shí)現(xiàn)和ACEGI的整合,怎么解決上面的問(wèn)題,希望斑竹給個(gè)聯(lián)系方式,我們可以交流交流,我的EMAIL是:362726130@QQ.COM,謝謝!  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2008-04-15 22:17 wmcoo

    終于找到了,遲來(lái)的星星  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J)[未登錄](méi) 2008-07-27 01:10 sam

    如果客戶端的是多個(gè)密鑰的話,服務(wù)端怎么處理,怎么選擇客戶端的公鑰來(lái)加密呢?  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2008-09-24 15:33 hello

    SecureX 是什么啊,怎么用啊?  回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2008-09-24 15:33 hello

    生成.jks文件的sourceX是什么?怎么用的?什么原理呀?   回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2008-11-26 13:14 leke_斌

    真是好文章 在這篇文章的基礎(chǔ)上我實(shí)現(xiàn)了用戶驗(yàn)證+報(bào)文加密的WS-Security,在結(jié)合中出現(xiàn)org.apache.ws.security.components.crypto.Merlin cannot create instance這個(gè)異常 花費(fèi)了我一天的時(shí)間才解決這問(wèn)題 最后我是重新配置了一遍密鑰庫(kù)文件,把私鑰和密鑰對(duì)的別名的訪問(wèn)密碼重新設(shè)定。

    但現(xiàn)在我這邊還有個(gè)問(wèn)題,因?yàn)槲疫@邊是C#與java兩點(diǎn)交互的系統(tǒng) 不知在C#端能不能怎么加密報(bào)文
    大家多多指教 email: liubinan@yahoo.com.cn
      回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2009-01-15 09:26 賑災(zāi)研究

    @三石
    Service serviceModel = new ObjectServiceFactory(
    new AegisBindingProvider(new JaxbTypeRegistry()))
    .create(UserServiceComPortType.class);

    myeclipse自動(dòng)生成的web service與xfire默認(rèn)的綁定方式不一樣造成的。
    xfire默認(rèn)的綁定方式是:aegis。而生成的客戶端是用的JAXB@三石
      回復(fù)  更多評(píng)論   

    # re: [原創(chuàng)]實(shí)施WebService Security[WS-Security1.0]的Encrypt和Sign模式(XFire+WSS4J) 2011-06-02 21:10 xuezhishou

    不知樓主現(xiàn)在是否還能回答下問(wèn)題!本人遇到了和srvrv12的第一個(gè)問(wèn)題一樣的問(wèn)題,即在Sign的模式下一直出現(xiàn) Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: WSS4JInHandler: security processing failed ,不知是否已經(jīng)有人解決了,可否賜教下
      回復(fù)  更多評(píng)論   

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(110)

    我參與的團(tuán)隊(duì)

    隨筆分類(126)

    隨筆檔案(155)

    文章分類(9)

    文章檔案(19)

    相冊(cè)

    搜索

    積分與排名

    最新隨筆

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 无码区日韩特区永久免费系列| 亚洲嫩草影院在线观看| 狠狠躁狠狠爱免费视频无码| 亚洲高清最新av网站| 美女裸体无遮挡免费视频网站| 国产网站在线免费观看| 亚洲男人的天堂网站| 免费观看美女裸体网站| 国产免费131美女视频| 亚洲AV无码国产剧情| 亚州免费一级毛片| 亚洲熟妇中文字幕五十中出| 午夜亚洲WWW湿好爽| 免费国产成人午夜电影| 思思久久99热免费精品6 | 亚洲精品无码专区在线播放| 成年女人色毛片免费看| 亚洲春色在线视频| 无码人妻AV免费一区二区三区| 国产专区一va亚洲v天堂| 亚洲精品在线播放| 黄页免费的网站勿入免费直接进入| 亚洲av永久综合在线观看尤物| 成年女人18级毛片毛片免费| 亚洲AV无码AV日韩AV网站| 免费乱理伦在线播放| 精品97国产免费人成视频| 亚洲国产精品无码久久SM| 91精品全国免费观看含羞草| 亚洲一区二区三区在线观看蜜桃| 免费观看的av毛片的网站| 美女被爆羞羞网站免费| 亚洲中久无码永久在线观看同| 国产精品免费AV片在线观看| 亚洲国产成人精品无码区在线秒播 | 免费成人av电影| 三上悠亚在线观看免费| 久久久精品国产亚洲成人满18免费网站| 韩日电影在线播放免费版| 亚洲高清中文字幕| 一级毛片aaaaaa免费看|