Hi,
I am trying to test CXF Timestamp Signature Encrypt EXAMPLE. I have
generated key stores for client and server and kept under the relevant
folders.

/*I have the following configuration for the jaxws:endpoint.*/


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans";
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xmlns:jaxws="http://cxf.apache.org/jaxws";
        xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd";>

        <import resource="classpath:META-INF/cxf/cxf.xml" />
        <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
        <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />

        
        <bean id="personServ" class="com.unitedcoders.demo.PersonServiceImpl" />

        
         <bean id="logInBound"
class="org.apache.cxf.interceptor.LoggingInInterceptor" />

        <bean id="logOutBound"
class="org.apache.cxf.interceptor.LoggingOutInterceptor" />
        
        <jaxws:endpoint id="personService" implementor="#personServ"
                address="/personService">
                <jaxws:inInterceptors>
                        <ref bean="logInBound" />
                        <ref bean="inbound-security" />
                        
                </jaxws:inInterceptors>
                <jaxws:outInterceptors>
                        <ref bean="logOutBound" />
                        <ref bean="outbound-security" />
                </jaxws:outInterceptors>
                
                
                
        </jaxws:endpoint>
        <bean id="inbound-security"
class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor">
                <constructor-arg>
                        <map>
                                
                                <entry key="action" value="Timestamp Signature 
Encrypt"/>  
                                <entry
                                
key="#{T(org.apache.ws.security.handler.WSHandlerConstants).SIG_PROP_FILE}"
                                        value="server-crypto.properties">
                                </entry>
                                <entry
                                
key="#{T(org.apache.ws.security.handler.WSHandlerConstants).DEC_PROP_FILE}"
                                        value="server-crypto.properties">
                                </entry>
                                <entry
                                
key="#{T(org.apache.ws.security.handler.WSHandlerConstants).PW_CALLBACK_REF}">
                                        <ref bean="myPasswordCallback" />
                                </entry>
                        </map>
                </constructor-arg>
        </bean>
         <bean id="outbound-security"
class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor">
         <constructor-arg>

            <map>

                <entry key="action" value="Timestamp Signature Encrypt"/>  

                <entry key="user" value="server"/>              

                <entry key="signaturePropFile"
value="server-crypto.properties"/>

                <entry key="encryptionPropFile"
value="server-crypto.properties"/>

                <entry key="encryptionUser" value="useReqSigCert"/>

               <entry
                                
key="#{T(org.apache.ws.security.handler.WSHandlerConstants).PW_CALLBACK_REF}">
                                        <ref bean="myPasswordCallback" />
                                </entry>

                <entry key="signatureParts"
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"/>

                <entry key="encryptionParts"
value="{Content}{http://schemas.xmlsoap.org/soap/envelope/}Body"/>

                <entry key="encryptionSymAlgorithm"
value="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>

            </map>

        </constructor-arg>

    </bean>   
        
        <bean class="com.unitedcoders.security.ServerPasswordCallback"
                id="myPasswordCallback" />
        
</beans>



/*I have the following configuration for the jaxws:client.*/


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans";
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xmlns:jaxws="http://cxf.apache.org/jaxws";
        xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd";>

        <import resource="classpath:META-INF/cxf/cxf.xml" />
        <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />

        
        <bean id="personServ" class="com.unitedcoders.demo.PersonServiceImpl" />

        

        <bean id="logOutBound"
class="org.apache.cxf.interceptor.LoggingOutInterceptor" />
        <bean id="logInBound"
class="org.apache.cxf.interceptor.LoggingInInterceptor" />
        <jaxws:client id="personServiceClient"
serviceClass="com.unitedcoders.demo.PersonService"
                address="http://localhost:8080/CXFExampleService";>
                <jaxws:inInterceptors>

                        <ref bean="logInBound" />

                        <ref bean="inbound-security" />

                </jaxws:inInterceptors>
                <jaxws:outInterceptors>

                        <ref bean="logOutBound" />

                        <ref bean="outbound-security" />

                </jaxws:outInterceptors>

        </jaxws:client>
        <bean class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor"
                id="outbound-security">

                <constructor-arg>

                        <map>

                                <entry key="action" value="Timestamp Signature 
Encrypt" />

                                <entry key="user" value="client" />

                                <entry key="signaturePropFile" 
value="client-crypto.properties" />

                                <entry key="encryptionPropFile" 
value="client-crypto.properties" />

                                <entry key="signatureKeyIdentifier" 
value="DirectReference" />

                                <entry key="encryptionUser" value="server" />

                                <entry
                                
key="#{T(org.apache.ws.security.handler.WSHandlerConstants).PW_CALLBACK_REF}">
                                        <ref bean="clientPasswordCallback" />
                                </entry>

                                <entry key="signatureParts"
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"/>
                
                <entry key="encryptionParts"
value="{Element}{http://www.w3.org/2000/09/xmldsig#}Signature;{Content}{http://schemas.xmlsoap.org/soap/envelope/}Body"/>
               
                <entry key="encryptionSymAlgorithm"
value="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/> 
            </map>

                </constructor-arg>

        </bean>

        <bean class="com.unitedcoders.client.ClientPasswordCallback"
id="clientPasswordCallback" />
        <bean class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor"
                id="inbound-security">

                <constructor-arg>

                        <map>

                                <entry key="action" value="Timestamp Signature 
Encrypt" />

                                <entry key="signaturePropFile" 
value="client-crypto.properties" />

                                <entry key="decryptionPropFile" 
value="client-crypto.properties" />

                                <entry
                                
key="#{T(org.apache.ws.security.handler.WSHandlerConstants).PW_CALLBACK_REF}">
                                        <ref bean="clientPasswordCallback" />
                                </entry>

                        </map>

                </constructor-arg>

        </bean>
</beans>

/*I have deployed the service to tomcat successfully.

when I run the client below.*/

ClassPathXmlApplicationContext context = new
ClassPathXmlApplicationContext(new String[]{"client-context.xml"});
                System.out.println("Context"+context.getBeanDefinitionCount());
                PersonService client =
(PersonService)context.getBean("personServiceClient");
                System.out.println("Client:" +client.greetPerson("Padma"));
/*
I am getting the following exception.*/


 Interceptor for
{http://demo.unitedcoders.com/}PersonServiceService#{http://demo.unitedcoders.com/}greetPerson
has thrown exception, unwinding now
java.lang.IllegalArgumentException: not an RSA key!
        at org.bouncycastle.jce.provider.JCERSACipher.engineGetKeySize(Unknown
Source)
        at javax.crypto.Cipher.b(DashoA13*..)
        at javax.crypto.Cipher.a(DashoA13*..)
        at javax.crypto.Cipher.a(DashoA13*..)
        at javax.crypto.Cipher.a(DashoA13*..)
        at javax.crypto.Cipher.init(DashoA13*..)
        at javax.crypto.Cipher.init(DashoA13*..)
        at
org.apache.ws.security.message.WSSecEncryptedKey.prepareInternal(WSSecEncryptedKey.java:257)
        at
org.apache.ws.security.message.WSSecEncrypt.prepare(WSSecEncrypt.java:182)
        at 
org.apache.ws.security.message.WSSecEncrypt.build(WSSecEncrypt.java:223)
        at
org.apache.ws.security.action.EncryptionAction.execute(EncryptionAction.java:95)
        at
org.apache.ws.security.handler.WSHandler.doSenderAction(WSHandler.java:232)
        at
org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor.access$200(WSS4JOutInterceptor.java:52)
        at
org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor$WSS4JOutInterceptorInternal.handleMessage(WSS4JOutInterceptor.java:260)
        at
org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor$WSS4JOutInterceptorInternal.handleMessage(WSS4JOutInterceptor.java:136)
        at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
        at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:565)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:474)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:377)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:330)
        at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
        at 
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
        at com.sun.proxy.$Proxy36.greetPerson(Unknown Source)
        at
com.unitedcoders.client.PersonServiceClient.main(PersonServiceClient.java:21)

Please help me figure out this issue



--
View this message in context: 
http://cxf.547215.n5.nabble.com/java-lang-IllegalArgumentException-not-an-RSA-key-at-org-bouncycastle-jce-provider-JCERSACipher-engi-tp5735564.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to