By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
437,913 Members | 1,356 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 437,913 IT Pros & Developers. It's quick & easy.

How to load a .properties file in felix for enable Ws-Security using CXF WSS4J?

P: 3
My MetaDate.xml file is:-

Expand|Select|Wrap|Line Numbers
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Copyright (c) Orga Systems GmbH and/or its affiliates, 2011 - 2012 All 
  3.     Rights Reserved. The software contained on this media is proprietary to and 
  4.     embodies the confidential technology of the copyright holder. Possession, 
  5.     use, duplication or dissemination of the software and media is authorized 
  6.     only pursuant to a valid written license from the copyright holder. This 
  7.     copyright notice must appear in all copies of this software. -->
  8. <beans xmlns="http://www.springframework.org/schema/beans"
  9.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:cxf="http://cxf.apache.org/core"
  10.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  11.                         http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
  12.                         http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
  13.  
  14.     <!-- webservice bean defintions can refer to parent "webserviceImplParent" 
  15.         (defined in ws-core-context.xml) to inherit injection of mandatory dependecies 
  16.         and init-method. Can be overridden here if required -->
  17.  
  18.     <bean id="getAccountImpl" class="com.orga.oslee.bsg.ra.ws.GetAccountImpl" parent="webserviceImplParent" />
  19.  
  20.  
  21.     <bean id="ServerPasswordCallback" class="com.orga.oslee.bsg.ra.ws.ServerPasswordCallback" />
  22.  
  23.     <jaxws:endpoint xmlns:tns="http://oslee.orga.com/bsg/ra/ws"
  24.         id="getAccount" implementor="#getAccountImpl"
  25.         wsdlLocation="/data/AJENA/Sec_Aks/JavaProducts_oslee_bsg_dev_R1.1_security_test_Sec_Aks/install/conf/com.orga.oslee.ra.bsgws.BSGStandardWebservice-dev-R1.0.0/BSGAccountServices.wsdl"
  26.         endpointName="tns:GetAccountPort" serviceName="tns:GetAccountService"
  27.         address="http://kolps12:33333/getaccount">
  28.  
  29.  
  30.         <jaxws:outInterceptors>
  31.             <ref bean="TimestampSignEncrypt_Response" />
  32.         </jaxws:outInterceptors>
  33.  
  34.  
  35.         <jaxws:inInterceptors>
  36.             <ref bean="TimestampSignEncrypt_Request" />
  37.         </jaxws:inInterceptors>
  38.  
  39.     </jaxws:endpoint>
  40.  
  41.  
  42.     <!-- WSS4JInInterceptor for decrypting and validating the signature of the 
  43.         SOAP request. -->
  44.     <bean id="TimestampSignEncrypt_Request" class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor">
  45.         <constructor-arg>
  46.             <map>
  47.                 <entry key="action" value="Timestamp Signature Encrypt" />
  48.                 <entry key="signaturePropFile" value="serviceKeystore.properties" />
  49.                 <entry key="decryptionPropFile" value="serviceKeystore.properties" />
  50.                 <entry key="passwordCallbackClass" value="com.orga.oslee.bsg.ra.ws.ServerPasswordCallback" />
  51.             </map>
  52.         </constructor-arg>
  53.     </bean>
  54.  
  55.  
  56.  
  57.     <!-- WSS4JOutInterceptor for encoding and signing the SOAP response. -->
  58.     <bean id="TimestampSignEncrypt_Response" class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor">
  59.         <constructor-arg>
  60.             <map>
  61.                 <entry key="action" value="Timestamp Signature Encrypt" />
  62.                 <entry key="user" value="myservicekey" />
  63.                 <entry key="signaturePropFile" value="serviceKeystore.properties" />
  64.                 <entry key="encryptionPropFile" value="serviceKeystore.properties" />
  65.                 <entry key="encryptionUser" value="useReqSigCert" />
  66.                 <entry key="passwordCallbackClass" value="com.orga.oslee.bsg.ra.ws.ServerPasswordCallback" />
  67.                 <entry key="signatureParts"
  68.                     value="{Element}{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}Timestamp;{Element}{http://schemas.xmlsoap.org/soap/envelope/}Body"/>
  69.                 <entry key="encryptionParts"
  70.                     value="{Element}{http://www.w3.org/2000/09/xmldsig#}Signature;{Content}{http://schemas.xmlsoap.org/soap/envelope/}Body" />
  71.                 <entry key="encryptionSymAlgorithm" value="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
  72.             </map>
  73.         </constructor-arg>
  74.     </bean>
  75. </beans>
  76.  
  77.  

My Keystore.properties file was:-

Expand|Select|Wrap|Line Numbers
  1. org.apache.ws.security.crypto.merlin.keystore.file=/data/AJENA/Sec_Aks/JavaProducts_oslee_bsg_dev_R1.1_security_test_Sec_Aks/Component/build/ORGA/OSLEE/ws-standard/src/com/orga/oslee/bsg/ra/ws/temp/keys/Keystore.jks
  2. org.apache.ws.security.crypto.merlin.keystore.password=abpass
  3. org.apache.ws.security.crypto.merlin.keystore.type=jks
  4. org.apache.ws.security.crypto.merlin.keystore.alias=myservicekey
  5.  
  6.  
Here I put my Keystore.properties file in src folder and the key.jks file in a temp/keys folder which is under src folder of my Web Service project.


But my problem is when ever I am trying to send any request using SOAP UI it will show the error i.e. :-


org.apache.cxf.binding.soap.SoapFault: General security error (Cannot load the resource serviceKeystore.properties)
at org.apache.cxf.ws.security.wss4j.WSS4JInIntercepto r.createSoapFault(WSS4JInInterceptor.java:643)
at org.apache.cxf.ws.security.wss4j.WSS4JInIntercepto r.handleMessage(WSS4JInInterceptor.java:308)
at org.apache.cxf.ws.security.wss4j.WSS4JInIntercepto r.handleMessage(WSS4JInInterceptor.java:85)
at org.apache.cxf.phase.PhaseInterceptorChain.doInter cept(PhaseInterceptorChain.java:263)
at org.apache.cxf.transport.ChainInitiationObserver.o nMessage(ChainInitiationObserver.java:123)
at org.apache.cxf.transport.http_jetty.JettyHTTPDesti nation.serviceRequest(JettyHTTPDestination.java:32 3)
at org.apache.cxf.transport.http_jetty.JettyHTTPDesti nation.doService(JettyHTTPDestination.java:289)
at org.apache.cxf.transport.http_jetty.JettyHTTPHandl er.handle(JettyHTTPHandler.java:72)

Caused by: org.apache.ws.security.WSSecurityException: General security error (Cannot load the resource serviceKeystore.properties)
at org.apache.ws.security.components.crypto.CryptoFac tory.getProperties(CryptoFactory.java:243)
at org.apache.ws.security.components.crypto.CryptoFac tory.getInstance(CryptoFactory.java:168)
at org.apache.cxf.ws.security.wss4j.AbstractWSS4JInte rceptor.loadCryptoFromPropertiesFile(AbstractWSS4J Interceptor.java:202)
at org.apache.ws.security.handler.WSHandler.loadCrypt o(WSHandler.java:805)
at org.apache.ws.security.handler.WSHandler.loadSigna tureCrypto(WSHandler.java:726)
at org.apache.ws.security.handler.WSHandler.decodeSig natureParameter2(WSHandler.java:1090)
at org.apache.ws.security.handler.WSHandler.doReceive rAction(WSHandler.java:272)
at org.apache.cxf.ws.security.wss4j.WSS4JInIntercepto r.handleMessage(WSS4JInInterceptor.java:242)


According to a document I also tried by inserting the class folder of key.jks class in the Libraries of my Web Service project.

Please tell me what to do to resolve this?
Jul 19 '12 #1
Share this question for a faster answer!
Share on Google+

Post your reply

Sign in to post your reply or Sign up for a free account.