Here is the working config: <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws=" http://cxf.apache.org/jaxws" xmlns:util="http://www.springframework.org/schema/util" xmlns:cxf=" http://cxf.apache.org/core" 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 http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd">
<import resource="classpath:META-INF/cxf/cxf.xml" /> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> <import resource="classpath:META-INF/cxf/cxf.xml" /> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> <bean class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor" id="outInterceptor" > <constructor-arg> <map> <entry key="action" value="Timestamp Signature Encrypt" /> <entry key="user" value="client" /> <entry key="signaturePropFile" value="keystore.properties" /> <entry key="encryptionPropFile" value="keystore.properties" /> <entry key="encryptionUser" value="user" /> <entry key="passwordCallbackClass" value="PasswordCallback" /> <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#aes128-cbc" /> <entry key="encryptionKeyTransportAlgorithm" value=" http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p" /> <entry key="signatureAlgorithm" value=" http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> <entry key="isBSPCompliant" value="false" /> </map> </constructor-arg> </bean> <bean class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor" id="ininterceptor"> <constructor-arg> <map> <entry key="action" value="Timestamp Signature Encrypt" /> <entry key="signaturePropFile" value="keystore.properties" /> <entry key="decryptionPropFile" value="keystore.properties" /> <entry key="passwordCallbackClass" value="PasswordCallback" /> <entry key="encryptionKeyTransportAlgorithm" value=" http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p" /> <entry key="signatureAlgorithm" value=" http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> </map> </constructor-arg> </bean> <bean id="logInbound" class="org.apache.cxf.interceptor.LoggingInInterceptor"> </bean> <bean id="logOutbound" class="org.apache.cxf.interceptor.LoggingOutInterceptor"> </bean> <cxf:bus> <cxf:inInterceptors> <ref bean="logInbound" /> </cxf:inInterceptors> <cxf:outInterceptors> <ref bean="logOutbound" /> </cxf:outInterceptors> <cxf:outFaultInterceptors> <ref bean="logOutbound" /> </cxf:outFaultInterceptors> <cxf:inFaultInterceptors> <ref bean="logInbound" /> </cxf:inFaultInterceptors> </cxf:bus> </beans> The only change I made that led to error is using a different class for the bean with id 'outInterceptor'. The new class simply extends org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor and overrides loadCrypto(String, String, RequestData) Basically I am trying to extend Merlin implementation in order to use encrypted properties for keystore. When I start the application, I get classcast exceptions due to classloader(that's what I believe). So defining a new merlin implementation via keystore.properties does not help. Hence I have been trying to inject the new merlin impl by overriding loadCrypto. Could you please help me figure out what's wrong? Thanks, Giriraj. On Thu, Apr 24, 2014 at 2:17 PM, Colm O hEigeartaigh <cohei...@apache.org>wrote: > I don't quite follow. Could you paste your entire spring config please? > > Colm. > > > On Thu, Apr 24, 2014 at 7:08 PM, Giriraj Bhojak <girira...@gmail.com> > wrote: > > > Hello, > > > > I am running into a problem if I extend the > > org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor via spring beans. > > > > I have a bean definition defined as(haven't shown complete <bean> > > definition) : > > <bean class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor" > > id="interceptor" > > > <constructor-arg> > > <map> > > <entry key="action" value="Encrypt" /> > > ............................................................. > > > > I need to extend WSS4JOutInterceptor to provide some customized behavior > > for crypto properties. > > But when I do that and use the new class in the above bean definition, I > > get following: > > > > java.lang.IllegalStateException: Cannot convert value of type > > [NewOutInterceptor] to required type > > [org.apache.cxf.interceptor.Interceptor] for property > 'outInterceptors[0]': > > no matching editors or conversion strategy found. > > > > I am on version 2.7.8 of cxf-rt-ws-security-2.7.8. > > Could anyone please help me with it? > > > > Thanks, > > Giriraj. > > > > > > -- > Colm O hEigeartaigh > > Talend Community Coder > http://coders.talend.com >