Does your new interceptor have a constructor that takes a Map<String,
Object>? I modified a system test to use a subclass of WSS4JOutInterceptor
which just had an empty constructor + a constructor with Map<String,
Object> which called super in both cases, and it worked ok.

Colm.


On Thu, Apr 24, 2014 at 7:35 PM, Giriraj Bhojak <[email protected]> wrote:

> 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 <[email protected]
> >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 <[email protected]>
> > 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
> >
>



-- 
Colm O hEigeartaigh

Talend Community Coder
http://coders.talend.com

Reply via email to