Hi Colm,

Thanks for your response. It was very helpful and I made good progress.

1.
<<<
No afaik as it'll get overwritten by the CXF runtime.
>>>
Thanks for clarification.

2.
<<<
Yes, as they are independent of each other. Of course you could always put
shared config in a separate configuration file and import it.
>>>
Good idea. I created ldap-config.xml file and put ldap related
configuration in there. I also made each endpoint import it.

3.
<<<
The config files for the STS each define (one or more) JAX-WS endpoints for
a particular port that is defined in the same WSDL, and each defines it's
own address. Therefore when you look at the WSDL that is published for a
particular endpoint, you will see the correct address in the WSDL only for
that particular endpoint.

In other words, the "Transport_UT" port configuration uses the address
"/STSService" and hence when you look at the WSDL available via "
https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSService?wsdl"; you see
the correct address for this port, but not for the other ports. The
"Transport" port uses the address "/STSServiceTransport" and so if you look
at the WSDL available at "
https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSServiceTransport?wsdl";
you will see the correct address for this port, etc.
>>>
I used http://wkengchoi.global.sdl.corp:9080/fedizidpsts/UTEncrypted?wsdlfor
UTEncrypted_Port and it worked.

4. Type Error
When I run client, I was seeing following
java.lang.ClassNotFoundExceptionon the STS server side. This is
because of
org.apache.cxf.sts.war.PasswordCallbackHandler referenced in
cxf-encrypted-ut.xml. This may need to be replaced by
org.apache.cxf.fediz.service.sts.PasswordCallbackHandler.
org.apache.cxf.sts.war.PasswordCallbackHandler is referenced in both
cxf-ut.xml and cxf-x509.xml as well.


                <bean id="encryptedUtSTSProperties"

                     class="org.apache.cxf.sts.StaticSTSProperties">

                    <property name="signaturePropertiesFile"
value="stsKeystore.properties"/>

                                <property name="signatureUsername"
value="mystskey"/>

                                <property name="callbackHandlerClass"
value=" *org.apache.cxf.sts.war.PasswordCallbackHandler *"/>

                                <property name="encryptionPropertiesFile"
value="stsKeystore.properties"/>

                                <property name="issuer"
value="DoubleItSTSIssuer"/>

                </bean>

                <jaxws:endpoint id="EncryptedUTSTS"

                                implementor="#encryptedUtSTSProviderBean"

                                address="/UTEncrypted"


wsdlLocation="/WEB-INF/wsdl/ws-trust-1.4-service.wsdl"

                                xmlns:ns1="
http://docs.oasis-open.org/ws-sx/ws-trust/200512/";

                                serviceName="ns1:SecurityTokenService"

                                 endpointName="ns1:UTEncrypted_Port">

                                <jaxws:properties>

                                                <entry
key="ws-security.callback-handler" value=" *
org.apache.cxf.sts.war.PasswordCallbackHandler* "/>

                                                <entry
key="ws-security.ut.validator" value-ref="jaasUTValidator"/>


                                                <entry
key="ws-security.signature.properties" value="stsKeystore.properties"/>

                                                <entry
key="ws-security.signature.username" value="mystskey"/>

                                </jaxws:properties>

                </jaxws:endpoint>



Jul 12, 2012 12:55:20 PM
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor handleMessage

WARNING:

org.apache.ws.security.WSSecurityException:
org.apache.cxf.sts.war.PasswordCallbackHandler

        at
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.getCallback(WSS4JInInterceptor.java:627)

        at
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.getCallback(WSS4JInInterceptor.java:610)

        at
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:251)

        at
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:97)

        at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)

        at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:122)

        at
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:211)

        at
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)

        at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:193)

        at
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:129)

        at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:187)

        at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:110)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)

        at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:166)

        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)

        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)

        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)

        at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)

        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)

        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)

        at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)

        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)

        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)

        at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)

        at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)

        at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)

        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

        at java.lang.Thread.run(Thread.java:662)

*Caused by: java.lang.ClassNotFoundException:
org.apache.cxf.sts.war.PasswordCallbackHandler*

        at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)

        at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)

        at
org.apache.cxf.common.classloader.ClassLoaderUtils.loadClass2(ClassLoaderUtils.java:271)

        at
org.apache.cxf.common.classloader.ClassLoaderUtils.loadClass(ClassLoaderUtils.java:245)

        at
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.getCallback(WSS4JInInterceptor.java:625)


On Thu, Jul 12, 2012 at 10:43 AM, Colm O hEigeartaigh
<[email protected]>wrote:

> > I have following content in this file. Value of the location attribute
> of the <soap:address> seems doesn't matter. I even set an
> > empty string on that, but it didn't make any difference. Are there any
> rules to set value for "location"?
>
> No afaik as it'll get overwritten by the CXF runtime.
>
> > 2. End point for cxf-transport.xml and cxf-encrypted-ut.xml seems
> independent to each other. I configured end point for
> > cxf-transport.xml to be connected to OpenLDAP. Is that mean that I need
> to configure cxf-encrypted-ut.xml to reference to
> > OpenLDAP so that UserName token is validated against OpenLDAP rather
> than hard coded by default?
>
> Yes, as they are independent of each other. Of course you could always put
> shared config in a separate configuration file and import it.
>
>
> >  3. I don't think that I understand your previous email.
>
> The config files for the STS each define (one or more) JAX-WS endpoints
> for a particular port that is defined in the same WSDL, and each defines
> it's own address. Therefore when you look at the WSDL that is published for
> a particular endpoint, you will see the correct address in the WSDL only
> for that particular endpoint.
>
> In other words, the "Transport_UT" port configuration uses the address
> "/STSService" and hence when you look at the WSDL available via "
> https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSService?wsdl"; you
> see the correct address for this port, but not for the other ports. The
> "Transport" port uses the address "/STSServiceTransport" and so if you look
> at the WSDL available at "
> https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSServiceTransport?wsdl";
> you will see the correct address for this port, etc.
>
> Colm.

Reply via email to