You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Gina Choi <gi...@gmail.com> on 2012/07/09 18:58:58 UTC
Soap address for Apache CXF-Fediz STS active end points
Hi all,
We try to integrate .NET application for SSO+Web security using CXF-Fediz
STS. Passive profile worked well without any problem. Now we try to call
cxf-encrypted-ut.xml endpoint using actas and we need a soap address for
this endpoint. If we look at ADFS2.0 wsdl file, I have following part.
<wsdl:service name="SecurityTokenService">
<wsdl:port name="UserNameWSTrustBinding_IWSTrust13Async2"
binding="tns:UserNameWSTrustBinding_IWSTrust13Async2">
<soap12:address location="
https://strts01.ams.dev/adfs/services/trust/13/usernamemixed" />
<wsa10:EndpointReference>
<wsa10:Address>
https://strts01.ams.dev/adfs/services/trust/13/usernamemixed
</wsa10:Address>
</wsa10:EndpointReference>
</wsdl:port>
</wsdl:service>
I am looking for corresponding end point soap address(
https://strts01.ams.dev/adfs/services/trust/13/usernamemixed) from
CXF-Fediz STS. If I look at ws-trust-1.4-service.wsdl file, we have
following. Soap address for each ports are the same. How do we identify
soap addresses? Do we need additional configuration? By the way, I
currently I have CXF-Fediz STS + OpenLDAP environment.
<wsdl:service name="SecurityTokenService">
<wsdl:port name="UT_Port" binding="tns:UT_Binding">
<soap:address location="http://localhost:8080/jaxws-sts/sts" />
</wsdl:port>
<wsdl:port name="X509_Port" binding="tns:X509_Binding">
<soap:address location="http://localhost:8080/jaxws-sts/sts" />
</wsdl:port>
<wsdl:port name="Transport_Port" binding="tns:Transport_Binding">
<soap:address location="http://localhost:8080/jaxws-sts/sts" />
</wsdl:port>
<wsdl:port name="UTEncrypted_Port" binding="tns:UTEncrypted_Binding">
<soap:address location="http://localhost:8080/jaxws-sts/sts" />
</wsdl:port>
<wsdl:port name="TransportUT_Port" binding="tns:TransportUT_Binding">
<soap:address location="http://localhost:8080/jaxws-sts/sts" />
</wsdl:port>
<wsdl:port name="TransportKerberos_Port"
binding="tns:TransportKerberos_Binding">
<soap:address location="
http://wkengchoi.global.sdl.corp:8080/jaxws-sts/sts" />
</wsdl:port>
</wsdl:service>
Thanks.
Gina
Re: Soap address for Apache CXF-Fediz STS active end points
Posted by Gina Choi <gi...@gmail.com>.
Hi Colm,
<<<<
I think the reason that when you view the WSDL via "
https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSService?wsdl" you
only see the correct address for the "TransportUT_Port" is that
"/STSService" is the address defined for the TransportUT_Port in
cxf-transport.xml. If you want to see the correct address for the
"Transport_Port" in cxf-transport.xml you would use the WSDL location "
https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSServiceTransport?wsdl"
etc.
>>>>
Now I understand what you are talking about. I was trying to see what I
want to see. So, Fediz STS has wsdl file for each end point. This is
something different than ADFS. I was expecting one generic wsdl file(I
thought that it was
https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSService?wsdl) for
entire Fediz STS and I thought it will be is fine long as I mention port
name that I going to use at the client side.
When I use UTEncrypted endpoint, then I have to use wsdl
https://wkengchoi.global.sdl.corp:9443/fedizidpsts/UTEncrypted?wsdl as
Fediz STS wsdl reference.
Thanks.
Gina
On Wed, Jul 11, 2012 at 8:47 AM, Colm O hEigeartaigh <co...@apache.org>wrote:
>
> I think the reason that when you view the WSDL via "
> https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSService?wsdl" you
> only see the correct address for the "TransportUT_Port" is that
> "/STSService" is the address defined for the TransportUT_Port in
> cxf-transport.xml. If you want to see the correct address for the
> "Transport_Port" in cxf-transport.xml you would use the WSDL location "
> https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSServiceTransport?wsdl"
> etc.
>
> Colm.
>
>
> On Wed, Jul 11, 2012 at 12:43 PM, Gina Choi <gi...@gmail.com> wrote:
>
>> Following is what I have.
>>
>> <jaxws:client name="{
>> http://www.example.org/contract/DoubleIt}DoubleItPort"
>> createdFromAPI="true">
>> <jaxws:properties>
>> <!-- Use below for UT Authentication between WSC and STS -->
>> <entry key="ws-security.sts.client">
>> <bean class="org.apache.cxf.ws.security.trust.STSClient">
>> <constructor-arg ref="cxf"/>
>> <property name="wsdlLocation" value="
>> http://wkengchoi.global.sdl.corp:9080/fedizidpsts/STSService?wsdl"/>
>> <property name="serviceName" value="{
>> http://docs.oasis-open.org/ws-sx/ws-trust/200512/}SecurityTokenService"/>
>> <property name="endpointName" value="{
>> http://docs.oasis-open.org/ws-sx/ws-trust/200512/}UTEncrypted_Port"/>
>> <property name="properties">
>> <map>
>> <entry key="ws-security.username"
>> value="gchoi"/>
>> <entry key="ws-security.callback-handler"
>> value="client.ClientCallbackHandler"/>
>> <entry key="ws-security.encryption.properties"
>> value="clientKeystore.properties"/>
>> <entry key="ws-security.encryption.username"
>> value="mystskey"/>
>> </map>
>> </property>
>> </bean>
>> </entry>
>> </jaxws:properties>
>> </jaxws:client>
>> </beans>
>>
>>
>> On Wed, Jul 11, 2012 at 7:24 AM, Colm O hEigeartaigh <coheigea@apache.org
>> > wrote:
>>
>>>
>>> What does your client configuration look like for this case?
>>>
>>> Colm.
>>>
>>>
>>> On Wed, Jul 11, 2012 at 11:58 AM, Gina Choi <gi...@gmail.com>wrote:
>>>
>>>> Hi Colm,
>>>>
>>>> Thanks for confirmation. If I browse(
>>>> https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSService?wsdl)
>>>> Fediz STS wsdl file, I see following content. As you noticed that except TransportUT_Port,
>>>> soap address for port UTEncrypted_Por, UT_Port and Transport_Port are
>>>> relative address(TransportKerberos_Port seems not ready. I might
>>>> comment this out).
>>>>
>>>>
>>>> <wsdl:service name="SecurityTokenService">
>>>>
>>>> <wsdl:port binding="wstrust:X509_Binding" name="X509_Port">
>>>>
>>>> <soap:address location="/X509"/>
>>>>
>>>> </wsdl:port>
>>>>
>>>> <wsdl:port binding="wstrust:TransportUT_Binding"
>>>> name="TransportUT_Port">
>>>>
>>>> <soap:address location="
>>>> https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSService"/>
>>>>
>>>> </wsdl:port>
>>>>
>>>> <wsdl:port binding="wstrust:TransportKerberos_Binding"
>>>> name="TransportKerberos_Port">
>>>>
>>>> <soap:address location="
>>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts"/>
>>>>
>>>> </wsdl:port>
>>>>
>>>> <wsdl:port binding="wstrust:UTEncrypted_Binding"
>>>> name="UTEncrypted_Port">
>>>>
>>>> <soap:address location="/UTEncrypted"/>
>>>>
>>>> </wsdl:port>
>>>>
>>>> <wsdl:port binding="wstrust:Transport_Binding"
>>>> name="Transport_Port">
>>>>
>>>> <soap:address location="/STSServiceTransport"/>
>>>>
>>>> </wsdl:port>
>>>>
>>>> <wsdl:port binding="wstrust:UT_Binding" name="UT_Port">
>>>>
>>>> <soap:address location="/UT"/>
>>>>
>>>> </wsdl:port>
>>>>
>>>> </wsdl:service>
>>>>
>>>> Part of current configuration of my ws-trust-1.4-service.wsdl is as
>>>> follow.
>>>>
>>>> <wsdl:service name="SecurityTokenService">
>>>>
>>>> <wsdl:port name="UT_Port" binding="tns:UT_Binding">
>>>>
>>>> <soap:address location="
>>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>>>
>>>> </wsdl:port>
>>>>
>>>> <wsdl:port name="X509_Port" binding="tns:X509_Binding">
>>>>
>>>> <soap:address location="
>>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>>>
>>>> </wsdl:port>
>>>>
>>>> <wsdl:port name="Transport_Port" binding="tns:Transport_Binding">
>>>>
>>>> <soap:address location="
>>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>>>
>>>> </wsdl:port>
>>>>
>>>> <wsdl:port name="UTEncrypted_Port"
>>>> binding="tns:UTEncrypted_Binding">
>>>>
>>>> <soap:address location="
>>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>>>
>>>> </wsdl:port>
>>>>
>>>> <wsdl:port name="TransportUT_Port"
>>>> binding="tns:TransportUT_Binding">
>>>>
>>>> <soap:address location="
>>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>>>
>>>> </wsdl:port>
>>>>
>>>> <wsdl:port name="TransportKerberos_Port"
>>>> binding="tns:TransportKerberos_Binding">
>>>>
>>>> <soap:address location="
>>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>>>
>>>> </wsdl:port>
>>>>
>>>> </wsdl:service>
>>>>
>>>>
>>>>
>>>> When I run my client toward UTEncrypted_Port, I am getting following
>>>> exception. So, it doesn't like relative address.
>>>>
>>>> Exception in thread "main" javax.xml.ws.WebServiceException: Could not
>>>> send Message.
>>>> at
>>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:145)
>>>> at $Proxy25.doubleIt(Unknown Source)
>>>> at client.WSClient.doubleIt(WSClient.java:18)
>>>> at client.WSClient.main(WSClient.java:11)
>>>> *Caused by: java.net.MalformedURLException: no protocol: /UTEncrypted*
>>>> at java.net.URL.<init>(URL.java:567)
>>>> at java.net.URL.<init>(URL.java:464)
>>>> at java.net.URL.<init>(URL.java:413)
>>>> at
>>>> org.apache.cxf.transport.http.HTTPConduit.getURL(HTTPConduit.java:752)
>>>> at
>>>> org.apache.cxf.transport.http.HTTPConduit.getURL(HTTPConduit.java:741)
>>>> at
>>>> org.apache.cxf.transport.http.HTTPConduit.setupURL(HTTPConduit.java:685)
>>>> at
>>>> org.apache.cxf.transport.http.HTTPConduit.prepare(HTTPConduit.java:474)
>>>> at
>>>> org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:46)
>>>> at
>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
>>>> at
>>>> org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:532)
>>>> at
>>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:464)
>>>> at
>>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:367)
>>>> at
>>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:320)
>>>> at
>>>> org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:722)
>>>> at
>>>> org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:602)
>>>> at
>>>> org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:594)
>>>> at
>>>> org.apache.cxf.ws.security.policy.interceptors.IssuedTokenInterceptorProvider$IssuedTokenOutInterceptor.getTokenFromSTS(IssuedTokenInterceptorProvider.java:404)
>>>> at
>>>> org.apache.cxf.ws.security.policy.interceptors.IssuedTokenInterceptorProvider$IssuedTokenOutInterceptor.handleMessage(IssuedTokenInterceptorProvider.java:188)
>>>> at
>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
>>>> at
>>>> org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:532)
>>>> at
>>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:464)
>>>> at
>>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:367)
>>>> at
>>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:320)
>>>> at
>>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:89)
>>>> at
>>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)
>>>>
>>>> Thanks.
>>>>
>>>> Gina
>>>>
>>>
>
>
> --
> Colm O hEigeartaigh
>
> Talend Community Coder
> http://coders.talend.com
>
>
Re: Soap address for Apache CXF-Fediz STS active end points
Posted by Colm O hEigeartaigh <co...@apache.org>.
> When I run client, I was seeing following
> java.lang.ClassNotFoundExceptionon the STS server side.....
Thanks, I've made this change.
Colm.
On Thu, Jul 12, 2012 at 6:44 PM, Gina Choi <gi...@gmail.com> wrote:
> 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
> <co...@apache.org>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.
>
--
Colm O hEigeartaigh
Talend Community Coder
http://coders.talend.com
Re: Soap address for Apache CXF-Fediz STS active end points
Posted by Gina Choi <gi...@gmail.com>.
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
<co...@apache.org>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.
Re: Soap address for Apache CXF-Fediz STS active end points
Posted by Colm O hEigeartaigh <co...@apache.org>.
> 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.
On Thu, Jul 12, 2012 at 12:52 PM, Gina Choi <gi...@gmail.com> wrote:
> Hi Colm,
>
> I have attached my cxf-transport.xml, cxf-encrypted-ut.xml,
> cxf-servlet.xml and ws-trust-1.4-service.wsdl and I have several questions
> to these files.
>
> 1. ws-trust-1.4-service.wsdl
> 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"?
>
> <wsdl:service name="SecurityTokenService">
>
> <wsdl:port name="UT_Port" binding="tns:UT_Binding">
>
> <soap:address location="
> http://wkengchoi.global.sdl.corp:8080/jaxws-sts/sts" />
>
> </wsdl:port>
>
> <wsdl:port name="X509_Port" binding="tns:X509_Binding">
>
> <soap:address location="
> http://wkengchoi.global.sdl.corp:8080/jaxws-sts/sts" />
>
> </wsdl:port>
>
> <wsdl:port name="Transport_Port" binding="tns:Transport_Binding">
>
> <soap:address location="
> http://wkengchoi.global.sdl.corp:8080/jaxws-sts/sts" />
>
> </wsdl:port>
>
> <wsdl:port name="UTEncrypted_Port"
> binding="tns:UTEncrypted_Binding">
>
> <soap:address location="
> http://wkengchoi.global.sdl.corp:8080/jaxws-sts/sts" />
>
> </wsdl:port>
>
> <wsdl:port name="TransportUT_Port"
> binding="tns:TransportUT_Binding">
>
> <soap:address location="
> http://wkengchoi.global.sdl.corp:8080/jaxws-sts/sts" />
>
> </wsdl:port>
>
> <wsdl:port name="TransportKerberos_Port"
> binding="tns:TransportKerberos_Binding">
>
> <soap:address location="
> http://wkengchoi.global.sdl.corp:8080/jaxws-sts/sts" />
>
> </wsdl:port>
>
> </wsdl:service>
>
>
> 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? Live "alice"
> vs "ecila"?
>
> 3. I don't think that I understand your previous email.
> <<<<
> I think the reason that when you view the WSDL via "
> https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSService?wsdl" you
> only see the correct address for the "TransportUT_Port" is that
> "/STSService" is the address defined for the TransportUT_Port in
> cxf-transport.xml. If you want to see the correct address for the
> "Transport_Port" in cxf-transport.xml you would use the WSDL location "
> https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSServiceTransport?wsdl"
> etc.
> >>>>
>
> If I look at cxf-transport.xml, I applied same wsdlLocation like bellow,
> but it appears differently on the browser. I also attached wsdl file from
> browser(STSService.wsdl).
>
> <jaxws:endpoint id="transportSTS2"
> implementor="#transportSTSProviderBean"
>
> *address="/STSServiceTransport"
> 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:Transport_Port">
>
> <jaxws:properties>
>
> </jaxws:properties>
>
> </jaxws:endpoint>
>
>
>
> <!-- This is added for OpenLdap -->
>
> <jaxws:endpoint id="transportSTSUT"
>
>
> endpointName="ns1:TransportUT_Port"
>
>
> serviceName="ns1:SecurityTokenService"
>
>
> xmlns:ns1="http://docs.oasis-open.org/ws-sx/ws-trust/200512/"
>
>
> *wsdlLocation="/WEB-INF/wsdl/ws-trust-1.4-service.wsdl"*
>
>
> *address="/STSService"*
>
>
> implementor="#transportSTSProviderBean">
>
> <jaxws:properties>
>
> <entry
> key="ws-security.ut.validator"
>
>
> value-ref="jaasUTValidator"/>
>
> </jaxws:properties>
>
> </jaxws:endpoint>
>
>
>
>
> On Wed, Jul 11, 2012 at 8:47 AM, Colm O hEigeartaigh <co...@apache.org>wrote:
>
>>
>> I think the reason that when you view the WSDL via "
>> https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSService?wsdl" you
>> only see the correct address for the "TransportUT_Port" is that
>> "/STSService" is the address defined for the TransportUT_Port in
>> cxf-transport.xml. If you want to see the correct address for the
>> "Transport_Port" in cxf-transport.xml you would use the WSDL location "
>> https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSServiceTransport?wsdl"
>> etc.
>>
>> Colm.
>>
>>
>> On Wed, Jul 11, 2012 at 12:43 PM, Gina Choi <gi...@gmail.com> wrote:
>>
>>> Following is what I have.
>>>
>>> <jaxws:client name="{
>>> http://www.example.org/contract/DoubleIt}DoubleItPort"
>>> createdFromAPI="true">
>>> <jaxws:properties>
>>> <!-- Use below for UT Authentication between WSC and STS -->
>>> <entry key="ws-security.sts.client">
>>> <bean class="org.apache.cxf.ws.security.trust.STSClient">
>>> <constructor-arg ref="cxf"/>
>>> <property name="wsdlLocation" value="
>>> http://wkengchoi.global.sdl.corp:9080/fedizidpsts/STSService?wsdl"/>
>>> <property name="serviceName" value="{
>>> http://docs.oasis-open.org/ws-sx/ws-trust/200512/}SecurityTokenService
>>> "/>
>>> <property name="endpointName" value="{
>>> http://docs.oasis-open.org/ws-sx/ws-trust/200512/}UTEncrypted_Port"/>
>>> <property name="properties">
>>> <map>
>>> <entry key="ws-security.username"
>>> value="gchoi"/>
>>> <entry key="ws-security.callback-handler"
>>> value="client.ClientCallbackHandler"/>
>>> <entry
>>> key="ws-security.encryption.properties" value="clientKeystore.properties"/>
>>> <entry key="ws-security.encryption.username"
>>> value="mystskey"/>
>>> </map>
>>> </property>
>>> </bean>
>>> </entry>
>>> </jaxws:properties>
>>> </jaxws:client>
>>> </beans>
>>>
>>>
>>> On Wed, Jul 11, 2012 at 7:24 AM, Colm O hEigeartaigh <
>>> coheigea@apache.org> wrote:
>>>
>>>>
>>>> What does your client configuration look like for this case?
>>>>
>>>> Colm.
>>>>
>>>>
>>>> On Wed, Jul 11, 2012 at 11:58 AM, Gina Choi <gi...@gmail.com>wrote:
>>>>
>>>>> Hi Colm,
>>>>>
>>>>> Thanks for confirmation. If I browse(
>>>>> https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSService?wsdl)
>>>>> Fediz STS wsdl file, I see following content. As you noticed that except TransportUT_Port,
>>>>> soap address for port UTEncrypted_Por, UT_Port and Transport_Port are
>>>>> relative address(TransportKerberos_Port seems not ready. I might
>>>>> comment this out).
>>>>>
>>>>>
>>>>> <wsdl:service name="SecurityTokenService">
>>>>>
>>>>> <wsdl:port binding="wstrust:X509_Binding" name="X509_Port">
>>>>>
>>>>> <soap:address location="/X509"/>
>>>>>
>>>>> </wsdl:port>
>>>>>
>>>>> <wsdl:port binding="wstrust:TransportUT_Binding"
>>>>> name="TransportUT_Port">
>>>>>
>>>>> <soap:address location="
>>>>> https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSService"/>
>>>>>
>>>>> </wsdl:port>
>>>>>
>>>>> <wsdl:port binding="wstrust:TransportKerberos_Binding"
>>>>> name="TransportKerberos_Port">
>>>>>
>>>>> <soap:address location="
>>>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts"/>
>>>>>
>>>>> </wsdl:port>
>>>>>
>>>>> <wsdl:port binding="wstrust:UTEncrypted_Binding"
>>>>> name="UTEncrypted_Port">
>>>>>
>>>>> <soap:address location="/UTEncrypted"/>
>>>>>
>>>>> </wsdl:port>
>>>>>
>>>>> <wsdl:port binding="wstrust:Transport_Binding"
>>>>> name="Transport_Port">
>>>>>
>>>>> <soap:address location="/STSServiceTransport"/>
>>>>>
>>>>> </wsdl:port>
>>>>>
>>>>> <wsdl:port binding="wstrust:UT_Binding" name="UT_Port">
>>>>>
>>>>> <soap:address location="/UT"/>
>>>>>
>>>>> </wsdl:port>
>>>>>
>>>>> </wsdl:service>
>>>>>
>>>>> Part of current configuration of my ws-trust-1.4-service.wsdl is as
>>>>> follow.
>>>>>
>>>>> <wsdl:service name="SecurityTokenService">
>>>>>
>>>>> <wsdl:port name="UT_Port" binding="tns:UT_Binding">
>>>>>
>>>>> <soap:address location="
>>>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>>>>
>>>>> </wsdl:port>
>>>>>
>>>>> <wsdl:port name="X509_Port" binding="tns:X509_Binding">
>>>>>
>>>>> <soap:address location="
>>>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>>>>
>>>>> </wsdl:port>
>>>>>
>>>>> <wsdl:port name="Transport_Port" binding="tns:Transport_Binding">
>>>>>
>>>>> <soap:address location="
>>>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>>>>
>>>>> </wsdl:port>
>>>>>
>>>>> <wsdl:port name="UTEncrypted_Port"
>>>>> binding="tns:UTEncrypted_Binding">
>>>>>
>>>>> <soap:address location="
>>>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>>>>
>>>>> </wsdl:port>
>>>>>
>>>>> <wsdl:port name="TransportUT_Port"
>>>>> binding="tns:TransportUT_Binding">
>>>>>
>>>>> <soap:address location="
>>>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>>>>
>>>>> </wsdl:port>
>>>>>
>>>>> <wsdl:port name="TransportKerberos_Port"
>>>>> binding="tns:TransportKerberos_Binding">
>>>>>
>>>>> <soap:address location="
>>>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>>>>
>>>>> </wsdl:port>
>>>>>
>>>>> </wsdl:service>
>>>>>
>>>>>
>>>>>
>>>>> When I run my client toward UTEncrypted_Port, I am getting following
>>>>> exception. So, it doesn't like relative address.
>>>>>
>>>>> Exception in thread "main" javax.xml.ws.WebServiceException: Could not
>>>>> send Message.
>>>>> at
>>>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:145)
>>>>> at $Proxy25.doubleIt(Unknown Source)
>>>>> at client.WSClient.doubleIt(WSClient.java:18)
>>>>> at client.WSClient.main(WSClient.java:11)
>>>>> *Caused by: java.net.MalformedURLException: no protocol: /UTEncrypted*
>>>>> at java.net.URL.<init>(URL.java:567)
>>>>> at java.net.URL.<init>(URL.java:464)
>>>>> at java.net.URL.<init>(URL.java:413)
>>>>> at
>>>>> org.apache.cxf.transport.http.HTTPConduit.getURL(HTTPConduit.java:752)
>>>>> at
>>>>> org.apache.cxf.transport.http.HTTPConduit.getURL(HTTPConduit.java:741)
>>>>> at
>>>>> org.apache.cxf.transport.http.HTTPConduit.setupURL(HTTPConduit.java:685)
>>>>> at
>>>>> org.apache.cxf.transport.http.HTTPConduit.prepare(HTTPConduit.java:474)
>>>>> at
>>>>> org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:46)
>>>>> at
>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
>>>>> at
>>>>> org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:532)
>>>>> at
>>>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:464)
>>>>> at
>>>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:367)
>>>>> at
>>>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:320)
>>>>> at
>>>>> org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:722)
>>>>> at
>>>>> org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:602)
>>>>> at
>>>>> org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:594)
>>>>> at
>>>>> org.apache.cxf.ws.security.policy.interceptors.IssuedTokenInterceptorProvider$IssuedTokenOutInterceptor.getTokenFromSTS(IssuedTokenInterceptorProvider.java:404)
>>>>> at
>>>>> org.apache.cxf.ws.security.policy.interceptors.IssuedTokenInterceptorProvider$IssuedTokenOutInterceptor.handleMessage(IssuedTokenInterceptorProvider.java:188)
>>>>> at
>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
>>>>> at
>>>>> org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:532)
>>>>> at
>>>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:464)
>>>>> at
>>>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:367)
>>>>> at
>>>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:320)
>>>>> at
>>>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:89)
>>>>> at
>>>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)
>>>>>
>>>>> Thanks.
>>>>>
>>>>> Gina
>>>>>
>>>>
>>
>>
>> --
>> Colm O hEigeartaigh
>>
>> Talend Community Coder
>> http://coders.talend.com
>>
>>
>
--
Colm O hEigeartaigh
Talend Community Coder
http://coders.talend.com
Re: Soap address for Apache CXF-Fediz STS active end points
Posted by Gina Choi <gi...@gmail.com>.
Hi Colm,
I have attached my cxf-transport.xml, cxf-encrypted-ut.xml, cxf-servlet.xml
and ws-trust-1.4-service.wsdl and I have several questions to these files.
1. ws-trust-1.4-service.wsdl
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"?
<wsdl:service name="SecurityTokenService">
<wsdl:port name="UT_Port" binding="tns:UT_Binding">
<soap:address location="
http://wkengchoi.global.sdl.corp:8080/jaxws-sts/sts" />
</wsdl:port>
<wsdl:port name="X509_Port" binding="tns:X509_Binding">
<soap:address location="
http://wkengchoi.global.sdl.corp:8080/jaxws-sts/sts" />
</wsdl:port>
<wsdl:port name="Transport_Port" binding="tns:Transport_Binding">
<soap:address location="
http://wkengchoi.global.sdl.corp:8080/jaxws-sts/sts" />
</wsdl:port>
<wsdl:port name="UTEncrypted_Port" binding="tns:UTEncrypted_Binding">
<soap:address location="
http://wkengchoi.global.sdl.corp:8080/jaxws-sts/sts" />
</wsdl:port>
<wsdl:port name="TransportUT_Port" binding="tns:TransportUT_Binding">
<soap:address location="
http://wkengchoi.global.sdl.corp:8080/jaxws-sts/sts" />
</wsdl:port>
<wsdl:port name="TransportKerberos_Port"
binding="tns:TransportKerberos_Binding">
<soap:address location="
http://wkengchoi.global.sdl.corp:8080/jaxws-sts/sts" />
</wsdl:port>
</wsdl:service>
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? Live "alice"
vs "ecila"?
3. I don't think that I understand your previous email.
<<<<
I think the reason that when you view the WSDL via "
https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSService?wsdl" you
only see the correct address for the "TransportUT_Port" is that
"/STSService" is the address defined for the TransportUT_Port in
cxf-transport.xml. If you want to see the correct address for the
"Transport_Port" in cxf-transport.xml you would use the WSDL location "
https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSServiceTransport?wsdl"
etc.
>>>>
If I look at cxf-transport.xml, I applied same wsdlLocation like bellow,
but it appears differently on the browser. I also attached wsdl file from
browser(STSService.wsdl).
<jaxws:endpoint id="transportSTS2"
implementor="#transportSTSProviderBean"
*address="/STSServiceTransport"
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:Transport_Port">
<jaxws:properties>
</jaxws:properties>
</jaxws:endpoint>
<!-- This is added for OpenLdap -->
<jaxws:endpoint id="transportSTSUT"
endpointName="ns1:TransportUT_Port"
serviceName="ns1:SecurityTokenService"
xmlns:ns1="http://docs.oasis-open.org/ws-sx/ws-trust/200512/"
*wsdlLocation="/WEB-INF/wsdl/ws-trust-1.4-service.wsdl"*
*address="/STSService"*
implementor="#transportSTSProviderBean">
<jaxws:properties>
<entry
key="ws-security.ut.validator"
value-ref="jaasUTValidator"/>
</jaxws:properties>
</jaxws:endpoint>
On Wed, Jul 11, 2012 at 8:47 AM, Colm O hEigeartaigh <co...@apache.org>wrote:
>
> I think the reason that when you view the WSDL via "
> https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSService?wsdl" you
> only see the correct address for the "TransportUT_Port" is that
> "/STSService" is the address defined for the TransportUT_Port in
> cxf-transport.xml. If you want to see the correct address for the
> "Transport_Port" in cxf-transport.xml you would use the WSDL location "
> https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSServiceTransport?wsdl"
> etc.
>
> Colm.
>
>
> On Wed, Jul 11, 2012 at 12:43 PM, Gina Choi <gi...@gmail.com> wrote:
>
>> Following is what I have.
>>
>> <jaxws:client name="{
>> http://www.example.org/contract/DoubleIt}DoubleItPort"
>> createdFromAPI="true">
>> <jaxws:properties>
>> <!-- Use below for UT Authentication between WSC and STS -->
>> <entry key="ws-security.sts.client">
>> <bean class="org.apache.cxf.ws.security.trust.STSClient">
>> <constructor-arg ref="cxf"/>
>> <property name="wsdlLocation" value="
>> http://wkengchoi.global.sdl.corp:9080/fedizidpsts/STSService?wsdl"/>
>> <property name="serviceName" value="{
>> http://docs.oasis-open.org/ws-sx/ws-trust/200512/}SecurityTokenService"/>
>> <property name="endpointName" value="{
>> http://docs.oasis-open.org/ws-sx/ws-trust/200512/}UTEncrypted_Port"/>
>> <property name="properties">
>> <map>
>> <entry key="ws-security.username"
>> value="gchoi"/>
>> <entry key="ws-security.callback-handler"
>> value="client.ClientCallbackHandler"/>
>> <entry key="ws-security.encryption.properties"
>> value="clientKeystore.properties"/>
>> <entry key="ws-security.encryption.username"
>> value="mystskey"/>
>> </map>
>> </property>
>> </bean>
>> </entry>
>> </jaxws:properties>
>> </jaxws:client>
>> </beans>
>>
>>
>> On Wed, Jul 11, 2012 at 7:24 AM, Colm O hEigeartaigh <coheigea@apache.org
>> > wrote:
>>
>>>
>>> What does your client configuration look like for this case?
>>>
>>> Colm.
>>>
>>>
>>> On Wed, Jul 11, 2012 at 11:58 AM, Gina Choi <gi...@gmail.com>wrote:
>>>
>>>> Hi Colm,
>>>>
>>>> Thanks for confirmation. If I browse(
>>>> https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSService?wsdl)
>>>> Fediz STS wsdl file, I see following content. As you noticed that except TransportUT_Port,
>>>> soap address for port UTEncrypted_Por, UT_Port and Transport_Port are
>>>> relative address(TransportKerberos_Port seems not ready. I might
>>>> comment this out).
>>>>
>>>>
>>>> <wsdl:service name="SecurityTokenService">
>>>>
>>>> <wsdl:port binding="wstrust:X509_Binding" name="X509_Port">
>>>>
>>>> <soap:address location="/X509"/>
>>>>
>>>> </wsdl:port>
>>>>
>>>> <wsdl:port binding="wstrust:TransportUT_Binding"
>>>> name="TransportUT_Port">
>>>>
>>>> <soap:address location="
>>>> https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSService"/>
>>>>
>>>> </wsdl:port>
>>>>
>>>> <wsdl:port binding="wstrust:TransportKerberos_Binding"
>>>> name="TransportKerberos_Port">
>>>>
>>>> <soap:address location="
>>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts"/>
>>>>
>>>> </wsdl:port>
>>>>
>>>> <wsdl:port binding="wstrust:UTEncrypted_Binding"
>>>> name="UTEncrypted_Port">
>>>>
>>>> <soap:address location="/UTEncrypted"/>
>>>>
>>>> </wsdl:port>
>>>>
>>>> <wsdl:port binding="wstrust:Transport_Binding"
>>>> name="Transport_Port">
>>>>
>>>> <soap:address location="/STSServiceTransport"/>
>>>>
>>>> </wsdl:port>
>>>>
>>>> <wsdl:port binding="wstrust:UT_Binding" name="UT_Port">
>>>>
>>>> <soap:address location="/UT"/>
>>>>
>>>> </wsdl:port>
>>>>
>>>> </wsdl:service>
>>>>
>>>> Part of current configuration of my ws-trust-1.4-service.wsdl is as
>>>> follow.
>>>>
>>>> <wsdl:service name="SecurityTokenService">
>>>>
>>>> <wsdl:port name="UT_Port" binding="tns:UT_Binding">
>>>>
>>>> <soap:address location="
>>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>>>
>>>> </wsdl:port>
>>>>
>>>> <wsdl:port name="X509_Port" binding="tns:X509_Binding">
>>>>
>>>> <soap:address location="
>>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>>>
>>>> </wsdl:port>
>>>>
>>>> <wsdl:port name="Transport_Port" binding="tns:Transport_Binding">
>>>>
>>>> <soap:address location="
>>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>>>
>>>> </wsdl:port>
>>>>
>>>> <wsdl:port name="UTEncrypted_Port"
>>>> binding="tns:UTEncrypted_Binding">
>>>>
>>>> <soap:address location="
>>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>>>
>>>> </wsdl:port>
>>>>
>>>> <wsdl:port name="TransportUT_Port"
>>>> binding="tns:TransportUT_Binding">
>>>>
>>>> <soap:address location="
>>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>>>
>>>> </wsdl:port>
>>>>
>>>> <wsdl:port name="TransportKerberos_Port"
>>>> binding="tns:TransportKerberos_Binding">
>>>>
>>>> <soap:address location="
>>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>>>
>>>> </wsdl:port>
>>>>
>>>> </wsdl:service>
>>>>
>>>>
>>>>
>>>> When I run my client toward UTEncrypted_Port, I am getting following
>>>> exception. So, it doesn't like relative address.
>>>>
>>>> Exception in thread "main" javax.xml.ws.WebServiceException: Could not
>>>> send Message.
>>>> at
>>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:145)
>>>> at $Proxy25.doubleIt(Unknown Source)
>>>> at client.WSClient.doubleIt(WSClient.java:18)
>>>> at client.WSClient.main(WSClient.java:11)
>>>> *Caused by: java.net.MalformedURLException: no protocol: /UTEncrypted*
>>>> at java.net.URL.<init>(URL.java:567)
>>>> at java.net.URL.<init>(URL.java:464)
>>>> at java.net.URL.<init>(URL.java:413)
>>>> at
>>>> org.apache.cxf.transport.http.HTTPConduit.getURL(HTTPConduit.java:752)
>>>> at
>>>> org.apache.cxf.transport.http.HTTPConduit.getURL(HTTPConduit.java:741)
>>>> at
>>>> org.apache.cxf.transport.http.HTTPConduit.setupURL(HTTPConduit.java:685)
>>>> at
>>>> org.apache.cxf.transport.http.HTTPConduit.prepare(HTTPConduit.java:474)
>>>> at
>>>> org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:46)
>>>> at
>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
>>>> at
>>>> org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:532)
>>>> at
>>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:464)
>>>> at
>>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:367)
>>>> at
>>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:320)
>>>> at
>>>> org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:722)
>>>> at
>>>> org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:602)
>>>> at
>>>> org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:594)
>>>> at
>>>> org.apache.cxf.ws.security.policy.interceptors.IssuedTokenInterceptorProvider$IssuedTokenOutInterceptor.getTokenFromSTS(IssuedTokenInterceptorProvider.java:404)
>>>> at
>>>> org.apache.cxf.ws.security.policy.interceptors.IssuedTokenInterceptorProvider$IssuedTokenOutInterceptor.handleMessage(IssuedTokenInterceptorProvider.java:188)
>>>> at
>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
>>>> at
>>>> org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:532)
>>>> at
>>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:464)
>>>> at
>>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:367)
>>>> at
>>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:320)
>>>> at
>>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:89)
>>>> at
>>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)
>>>>
>>>> Thanks.
>>>>
>>>> Gina
>>>>
>>>
>
>
> --
> Colm O hEigeartaigh
>
> Talend Community Coder
> http://coders.talend.com
>
>
Re: Soap address for Apache CXF-Fediz STS active end points
Posted by Colm O hEigeartaigh <co...@apache.org>.
I think the reason that when you view the WSDL via "
https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSService?wsdl" you
only see the correct address for the "TransportUT_Port" is that
"/STSService" is the address defined for the TransportUT_Port in
cxf-transport.xml. If you want to see the correct address for the
"Transport_Port" in cxf-transport.xml you would use the WSDL location "
https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSServiceTransport?wsdl"
etc.
Colm.
On Wed, Jul 11, 2012 at 12:43 PM, Gina Choi <gi...@gmail.com> wrote:
> Following is what I have.
>
> <jaxws:client name="{
> http://www.example.org/contract/DoubleIt}DoubleItPort"
> createdFromAPI="true">
> <jaxws:properties>
> <!-- Use below for UT Authentication between WSC and STS -->
> <entry key="ws-security.sts.client">
> <bean class="org.apache.cxf.ws.security.trust.STSClient">
> <constructor-arg ref="cxf"/>
> <property name="wsdlLocation" value="
> http://wkengchoi.global.sdl.corp:9080/fedizidpsts/STSService?wsdl"/>
> <property name="serviceName" value="{
> http://docs.oasis-open.org/ws-sx/ws-trust/200512/}SecurityTokenService"/>
> <property name="endpointName" value="{
> http://docs.oasis-open.org/ws-sx/ws-trust/200512/}UTEncrypted_Port"/>
> <property name="properties">
> <map>
> <entry key="ws-security.username"
> value="gchoi"/>
> <entry key="ws-security.callback-handler"
> value="client.ClientCallbackHandler"/>
> <entry key="ws-security.encryption.properties"
> value="clientKeystore.properties"/>
> <entry key="ws-security.encryption.username"
> value="mystskey"/>
> </map>
> </property>
> </bean>
> </entry>
> </jaxws:properties>
> </jaxws:client>
> </beans>
>
>
> On Wed, Jul 11, 2012 at 7:24 AM, Colm O hEigeartaigh <co...@apache.org>wrote:
>
>>
>> What does your client configuration look like for this case?
>>
>> Colm.
>>
>>
>> On Wed, Jul 11, 2012 at 11:58 AM, Gina Choi <gi...@gmail.com> wrote:
>>
>>> Hi Colm,
>>>
>>> Thanks for confirmation. If I browse(
>>> https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSService?wsdl)
>>> Fediz STS wsdl file, I see following content. As you noticed that except TransportUT_Port,
>>> soap address for port UTEncrypted_Por, UT_Port and Transport_Port are
>>> relative address(TransportKerberos_Port seems not ready. I might
>>> comment this out).
>>>
>>>
>>> <wsdl:service name="SecurityTokenService">
>>>
>>> <wsdl:port binding="wstrust:X509_Binding" name="X509_Port">
>>>
>>> <soap:address location="/X509"/>
>>>
>>> </wsdl:port>
>>>
>>> <wsdl:port binding="wstrust:TransportUT_Binding"
>>> name="TransportUT_Port">
>>>
>>> <soap:address location="
>>> https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSService"/>
>>>
>>> </wsdl:port>
>>>
>>> <wsdl:port binding="wstrust:TransportKerberos_Binding"
>>> name="TransportKerberos_Port">
>>>
>>> <soap:address location="
>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts"/>
>>>
>>> </wsdl:port>
>>>
>>> <wsdl:port binding="wstrust:UTEncrypted_Binding"
>>> name="UTEncrypted_Port">
>>>
>>> <soap:address location="/UTEncrypted"/>
>>>
>>> </wsdl:port>
>>>
>>> <wsdl:port binding="wstrust:Transport_Binding"
>>> name="Transport_Port">
>>>
>>> <soap:address location="/STSServiceTransport"/>
>>>
>>> </wsdl:port>
>>>
>>> <wsdl:port binding="wstrust:UT_Binding" name="UT_Port">
>>>
>>> <soap:address location="/UT"/>
>>>
>>> </wsdl:port>
>>>
>>> </wsdl:service>
>>>
>>> Part of current configuration of my ws-trust-1.4-service.wsdl is as
>>> follow.
>>>
>>> <wsdl:service name="SecurityTokenService">
>>>
>>> <wsdl:port name="UT_Port" binding="tns:UT_Binding">
>>>
>>> <soap:address location="
>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>>
>>> </wsdl:port>
>>>
>>> <wsdl:port name="X509_Port" binding="tns:X509_Binding">
>>>
>>> <soap:address location="
>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>>
>>> </wsdl:port>
>>>
>>> <wsdl:port name="Transport_Port" binding="tns:Transport_Binding">
>>>
>>> <soap:address location="
>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>>
>>> </wsdl:port>
>>>
>>> <wsdl:port name="UTEncrypted_Port"
>>> binding="tns:UTEncrypted_Binding">
>>>
>>> <soap:address location="
>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>>
>>> </wsdl:port>
>>>
>>> <wsdl:port name="TransportUT_Port"
>>> binding="tns:TransportUT_Binding">
>>>
>>> <soap:address location="
>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>>
>>> </wsdl:port>
>>>
>>> <wsdl:port name="TransportKerberos_Port"
>>> binding="tns:TransportKerberos_Binding">
>>>
>>> <soap:address location="
>>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>>
>>> </wsdl:port>
>>>
>>> </wsdl:service>
>>>
>>>
>>>
>>> When I run my client toward UTEncrypted_Port, I am getting following
>>> exception. So, it doesn't like relative address.
>>>
>>> Exception in thread "main" javax.xml.ws.WebServiceException: Could not
>>> send Message.
>>> at
>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:145)
>>> at $Proxy25.doubleIt(Unknown Source)
>>> at client.WSClient.doubleIt(WSClient.java:18)
>>> at client.WSClient.main(WSClient.java:11)
>>> *Caused by: java.net.MalformedURLException: no protocol: /UTEncrypted*
>>> at java.net.URL.<init>(URL.java:567)
>>> at java.net.URL.<init>(URL.java:464)
>>> at java.net.URL.<init>(URL.java:413)
>>> at
>>> org.apache.cxf.transport.http.HTTPConduit.getURL(HTTPConduit.java:752)
>>> at
>>> org.apache.cxf.transport.http.HTTPConduit.getURL(HTTPConduit.java:741)
>>> at
>>> org.apache.cxf.transport.http.HTTPConduit.setupURL(HTTPConduit.java:685)
>>> at
>>> org.apache.cxf.transport.http.HTTPConduit.prepare(HTTPConduit.java:474)
>>> at
>>> org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:46)
>>> at
>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
>>> at
>>> org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:532)
>>> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:464)
>>> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:367)
>>> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:320)
>>> at
>>> org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:722)
>>> at
>>> org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:602)
>>> at
>>> org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:594)
>>> at
>>> org.apache.cxf.ws.security.policy.interceptors.IssuedTokenInterceptorProvider$IssuedTokenOutInterceptor.getTokenFromSTS(IssuedTokenInterceptorProvider.java:404)
>>> at
>>> org.apache.cxf.ws.security.policy.interceptors.IssuedTokenInterceptorProvider$IssuedTokenOutInterceptor.handleMessage(IssuedTokenInterceptorProvider.java:188)
>>> at
>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
>>> at
>>> org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:532)
>>> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:464)
>>> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:367)
>>> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:320)
>>> at
>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:89)
>>> at
>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)
>>>
>>> Thanks.
>>>
>>> Gina
>>>
>>
--
Colm O hEigeartaigh
Talend Community Coder
http://coders.talend.com
Re: Soap address for Apache CXF-Fediz STS active end points
Posted by Gina Choi <gi...@gmail.com>.
Following is what I have.
<jaxws:client name="{
http://www.example.org/contract/DoubleIt}DoubleItPort"
createdFromAPI="true">
<jaxws:properties>
<!-- Use below for UT Authentication between WSC and STS -->
<entry key="ws-security.sts.client">
<bean class="org.apache.cxf.ws.security.trust.STSClient">
<constructor-arg ref="cxf"/>
<property name="wsdlLocation" value="
http://wkengchoi.global.sdl.corp:9080/fedizidpsts/STSService?wsdl"/>
<property name="serviceName" value="{
http://docs.oasis-open.org/ws-sx/ws-trust/200512/}SecurityTokenService"/>
<property name="endpointName" value="{
http://docs.oasis-open.org/ws-sx/ws-trust/200512/}UTEncrypted_Port"/>
<property name="properties">
<map>
<entry key="ws-security.username" value="gchoi"/>
<entry key="ws-security.callback-handler"
value="client.ClientCallbackHandler"/>
<entry key="ws-security.encryption.properties"
value="clientKeystore.properties"/>
<entry key="ws-security.encryption.username"
value="mystskey"/>
</map>
</property>
</bean>
</entry>
</jaxws:properties>
</jaxws:client>
</beans>
On Wed, Jul 11, 2012 at 7:24 AM, Colm O hEigeartaigh <co...@apache.org>wrote:
>
> What does your client configuration look like for this case?
>
> Colm.
>
>
> On Wed, Jul 11, 2012 at 11:58 AM, Gina Choi <gi...@gmail.com> wrote:
>
>> Hi Colm,
>>
>> Thanks for confirmation. If I browse(
>> https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSService?wsdl)
>> Fediz STS wsdl file, I see following content. As you noticed that except TransportUT_Port,
>> soap address for port UTEncrypted_Por, UT_Port and Transport_Port are
>> relative address(TransportKerberos_Port seems not ready. I might comment
>> this out).
>>
>>
>> <wsdl:service name="SecurityTokenService">
>>
>> <wsdl:port binding="wstrust:X509_Binding" name="X509_Port">
>>
>> <soap:address location="/X509"/>
>>
>> </wsdl:port>
>>
>> <wsdl:port binding="wstrust:TransportUT_Binding"
>> name="TransportUT_Port">
>>
>> <soap:address location="
>> https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSService"/>
>>
>> </wsdl:port>
>>
>> <wsdl:port binding="wstrust:TransportKerberos_Binding"
>> name="TransportKerberos_Port">
>>
>> <soap:address location="
>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts"/>
>>
>> </wsdl:port>
>>
>> <wsdl:port binding="wstrust:UTEncrypted_Binding"
>> name="UTEncrypted_Port">
>>
>> <soap:address location="/UTEncrypted"/>
>>
>> </wsdl:port>
>>
>> <wsdl:port binding="wstrust:Transport_Binding" name="Transport_Port">
>>
>> <soap:address location="/STSServiceTransport"/>
>>
>> </wsdl:port>
>>
>> <wsdl:port binding="wstrust:UT_Binding" name="UT_Port">
>>
>> <soap:address location="/UT"/>
>>
>> </wsdl:port>
>>
>> </wsdl:service>
>>
>> Part of current configuration of my ws-trust-1.4-service.wsdl is as
>> follow.
>>
>> <wsdl:service name="SecurityTokenService">
>>
>> <wsdl:port name="UT_Port" binding="tns:UT_Binding">
>>
>> <soap:address location="
>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>
>> </wsdl:port>
>>
>> <wsdl:port name="X509_Port" binding="tns:X509_Binding">
>>
>> <soap:address location="
>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>
>> </wsdl:port>
>>
>> <wsdl:port name="Transport_Port" binding="tns:Transport_Binding">
>>
>> <soap:address location="
>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>
>> </wsdl:port>
>>
>> <wsdl:port name="UTEncrypted_Port"
>> binding="tns:UTEncrypted_Binding">
>>
>> <soap:address location="
>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>
>> </wsdl:port>
>>
>> <wsdl:port name="TransportUT_Port"
>> binding="tns:TransportUT_Binding">
>>
>> <soap:address location="
>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>
>> </wsdl:port>
>>
>> <wsdl:port name="TransportKerberos_Port"
>> binding="tns:TransportKerberos_Binding">
>>
>> <soap:address location="
>> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>>
>> </wsdl:port>
>>
>> </wsdl:service>
>>
>>
>>
>> When I run my client toward UTEncrypted_Port, I am getting following
>> exception. So, it doesn't like relative address.
>>
>> Exception in thread "main" javax.xml.ws.WebServiceException: Could not
>> send Message.
>> at
>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:145)
>> at $Proxy25.doubleIt(Unknown Source)
>> at client.WSClient.doubleIt(WSClient.java:18)
>> at client.WSClient.main(WSClient.java:11)
>> *Caused by: java.net.MalformedURLException: no protocol: /UTEncrypted*
>> at java.net.URL.<init>(URL.java:567)
>> at java.net.URL.<init>(URL.java:464)
>> at java.net.URL.<init>(URL.java:413)
>> at
>> org.apache.cxf.transport.http.HTTPConduit.getURL(HTTPConduit.java:752)
>> at
>> org.apache.cxf.transport.http.HTTPConduit.getURL(HTTPConduit.java:741)
>> at
>> org.apache.cxf.transport.http.HTTPConduit.setupURL(HTTPConduit.java:685)
>> at
>> org.apache.cxf.transport.http.HTTPConduit.prepare(HTTPConduit.java:474)
>> at
>> org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:46)
>> at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
>> at
>> org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:532)
>> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:464)
>> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:367)
>> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:320)
>> at
>> org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:722)
>> at
>> org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:602)
>> at
>> org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:594)
>> at
>> org.apache.cxf.ws.security.policy.interceptors.IssuedTokenInterceptorProvider$IssuedTokenOutInterceptor.getTokenFromSTS(IssuedTokenInterceptorProvider.java:404)
>> at
>> org.apache.cxf.ws.security.policy.interceptors.IssuedTokenInterceptorProvider$IssuedTokenOutInterceptor.handleMessage(IssuedTokenInterceptorProvider.java:188)
>> at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
>> at
>> org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:532)
>> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:464)
>> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:367)
>> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:320)
>> at
>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:89)
>> at
>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)
>>
>> Thanks.
>>
>> Gina
>>
>
Re: Soap address for Apache CXF-Fediz STS active end points
Posted by Colm O hEigeartaigh <co...@apache.org>.
What does your client configuration look like for this case?
Colm.
On Wed, Jul 11, 2012 at 11:58 AM, Gina Choi <gi...@gmail.com> wrote:
> Hi Colm,
>
> Thanks for confirmation. If I browse(
> https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSService?wsdl) Fediz
> STS wsdl file, I see following content. As you noticed that except TransportUT_Port,
> soap address for port UTEncrypted_Por, UT_Port and Transport_Port are
> relative address(TransportKerberos_Port seems not ready. I might comment
> this out).
>
>
> <wsdl:service name="SecurityTokenService">
>
> <wsdl:port binding="wstrust:X509_Binding" name="X509_Port">
>
> <soap:address location="/X509"/>
>
> </wsdl:port>
>
> <wsdl:port binding="wstrust:TransportUT_Binding"
> name="TransportUT_Port">
>
> <soap:address location="
> https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSService"/>
>
> </wsdl:port>
>
> <wsdl:port binding="wstrust:TransportKerberos_Binding"
> name="TransportKerberos_Port">
>
> <soap:address location="
> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts"/>
>
> </wsdl:port>
>
> <wsdl:port binding="wstrust:UTEncrypted_Binding"
> name="UTEncrypted_Port">
>
> <soap:address location="/UTEncrypted"/>
>
> </wsdl:port>
>
> <wsdl:port binding="wstrust:Transport_Binding" name="Transport_Port">
>
> <soap:address location="/STSServiceTransport"/>
>
> </wsdl:port>
>
> <wsdl:port binding="wstrust:UT_Binding" name="UT_Port">
>
> <soap:address location="/UT"/>
>
> </wsdl:port>
>
> </wsdl:service>
>
> Part of current configuration of my ws-trust-1.4-service.wsdl is as follow.
>
> <wsdl:service name="SecurityTokenService">
>
> <wsdl:port name="UT_Port" binding="tns:UT_Binding">
>
> <soap:address location="
> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>
> </wsdl:port>
>
> <wsdl:port name="X509_Port" binding="tns:X509_Binding">
>
> <soap:address location="
> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>
> </wsdl:port>
>
> <wsdl:port name="Transport_Port" binding="tns:Transport_Binding">
>
> <soap:address location="
> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>
> </wsdl:port>
>
> <wsdl:port name="UTEncrypted_Port"
> binding="tns:UTEncrypted_Binding">
>
> <soap:address location="
> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>
> </wsdl:port>
>
> <wsdl:port name="TransportUT_Port"
> binding="tns:TransportUT_Binding">
>
> <soap:address location="
> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>
> </wsdl:port>
>
> <wsdl:port name="TransportKerberos_Port"
> binding="tns:TransportKerberos_Binding">
>
> <soap:address location="
> http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
>
> </wsdl:port>
>
> </wsdl:service>
>
>
>
> When I run my client toward UTEncrypted_Port, I am getting following
> exception. So, it doesn't like relative address.
>
> Exception in thread "main" javax.xml.ws.WebServiceException: Could not
> send Message.
> at
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:145)
> at $Proxy25.doubleIt(Unknown Source)
> at client.WSClient.doubleIt(WSClient.java:18)
> at client.WSClient.main(WSClient.java:11)
> *Caused by: java.net.MalformedURLException: no protocol: /UTEncrypted*
> at java.net.URL.<init>(URL.java:567)
> at java.net.URL.<init>(URL.java:464)
> at java.net.URL.<init>(URL.java:413)
> at
> org.apache.cxf.transport.http.HTTPConduit.getURL(HTTPConduit.java:752)
> at
> org.apache.cxf.transport.http.HTTPConduit.getURL(HTTPConduit.java:741)
> at
> org.apache.cxf.transport.http.HTTPConduit.setupURL(HTTPConduit.java:685)
> at
> org.apache.cxf.transport.http.HTTPConduit.prepare(HTTPConduit.java:474)
> at
> org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:46)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
> at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:532)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:464)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:367)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:320)
> at
> org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:722)
> at
> org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:602)
> at
> org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:594)
> at
> org.apache.cxf.ws.security.policy.interceptors.IssuedTokenInterceptorProvider$IssuedTokenOutInterceptor.getTokenFromSTS(IssuedTokenInterceptorProvider.java:404)
> at
> org.apache.cxf.ws.security.policy.interceptors.IssuedTokenInterceptorProvider$IssuedTokenOutInterceptor.handleMessage(IssuedTokenInterceptorProvider.java:188)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
> at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:532)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:464)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:367)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:320)
> at
> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:89)
> at
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)
>
> Thanks.
>
> Gina
> On Wed, Jul 11, 2012 at 5:30 AM, Colm O hEigeartaigh <co...@apache.org>wrote:
>
>> Hi Gina,
>>
>> Yes your changes are correct - I have updated the STS config.
>>
>> Colm.
>>
>>
>> On Tue, Jul 10, 2012 at 7:03 PM, Gina Choi <gi...@gmail.com> wrote:
>>
>>> Thanks for quick fix. Both cxf-ut.xml and cxf-x509.xml are complaining
>>> about bean properties name when I enable them. So, I made following changes
>>> in cxf-ut.xml.
>>>
>>> 1. Commented out "encryptionName".
>>>
>>> <bean id="utService"
>>>
>>> class="org.apache.cxf.sts.service.StaticService">
>>>
>>> <property name="endpoints" ref="utEndpoints"/>
>>>
>>> <!--property name="encryptionName" value="myservicekey"/-->
>>>
>>> </bean>
>>>
>>>
>>> 2. Changed signatureProperties to signaturePropertiesFile. Changed
>>> encryptionProperties to encryptionPropertiesFile like bellow.
>>>
>>> <bean id="utSTSProperties"
>>>
>>> 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>
>>>
>>>
>>> I also made similar changed on cxf-x509.xml like bellow. I don't know if
>>> this is right way to fix it, but at least it prevents exceptions.
>>>
>>> <bean id="x509Service"
>>>
>>> class="org.apache.cxf.sts.service.StaticService">
>>>
>>> <property name="endpoints" ref="x509Endpoints"/>
>>>
>>> <!--property name="encryptionName" value="myservicekey"/-->
>>>
>>> </bean>
>>>
>>>
>>>
>>> <bean id="x509STSProperties"
>>>
>>> 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>
>>>
>>> <bean id="utSTSProperties"
>>>
>>> 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>
>>>
>>>
>>>
>>> Thanks.
>>>
>>> Gina
>>>
>>>
>>> On Tue, Jul 10, 2012 at 11:09 AM, Colm O hEigeartaigh <
>>> coheigea@apache.org> wrote:
>>>
>>>> There's a bug in the cxf-encrypted-ut.xml shipped with Fediz. I've
>>>> merged a
>>>> fix here:
>>>>
>>>> http://svn.apache.org/viewvc?view=revision&revision=1359717
>>>>
>>>> Colm.
>>>>
>>>
>>
>>
>> --
>> Colm O hEigeartaigh
>>
>> Talend Community Coder
>> http://coders.talend.com
>>
>>
>
--
Colm O hEigeartaigh
Talend Community Coder
http://coders.talend.com
Re: Soap address for Apache CXF-Fediz STS active end points
Posted by Gina Choi <gi...@gmail.com>.
Hi Colm,
Thanks for confirmation. If I browse(
https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSService?wsdl) Fediz
STS wsdl file, I see following content. As you noticed that except
TransportUT_Port,
soap address for port UTEncrypted_Por, UT_Port and Transport_Port are
relative address(TransportKerberos_Port seems not ready. I might comment
this out).
<wsdl:service name="SecurityTokenService">
<wsdl:port binding="wstrust:X509_Binding" name="X509_Port">
<soap:address location="/X509"/>
</wsdl:port>
<wsdl:port binding="wstrust:TransportUT_Binding"
name="TransportUT_Port">
<soap:address location="
https://wkengchoi.global.sdl.corp:9443/fedizidpsts/STSService"/>
</wsdl:port>
<wsdl:port binding="wstrust:TransportKerberos_Binding"
name="TransportKerberos_Port">
<soap:address location="
http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts"/>
</wsdl:port>
<wsdl:port binding="wstrust:UTEncrypted_Binding"
name="UTEncrypted_Port">
<soap:address location="/UTEncrypted"/>
</wsdl:port>
<wsdl:port binding="wstrust:Transport_Binding" name="Transport_Port">
<soap:address location="/STSServiceTransport"/>
</wsdl:port>
<wsdl:port binding="wstrust:UT_Binding" name="UT_Port">
<soap:address location="/UT"/>
</wsdl:port>
</wsdl:service>
Part of current configuration of my ws-trust-1.4-service.wsdl is as follow.
<wsdl:service name="SecurityTokenService">
<wsdl:port name="UT_Port" binding="tns:UT_Binding">
<soap:address location="
http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
</wsdl:port>
<wsdl:port name="X509_Port" binding="tns:X509_Binding">
<soap:address location="
http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
</wsdl:port>
<wsdl:port name="Transport_Port" binding="tns:Transport_Binding">
<soap:address location="
http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
</wsdl:port>
<wsdl:port name="UTEncrypted_Port" binding="tns:UTEncrypted_Binding">
<soap:address location="
http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
</wsdl:port>
<wsdl:port name="TransportUT_Port" binding="tns:TransportUT_Binding">
<soap:address location="
http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
</wsdl:port>
<wsdl:port name="TransportKerberos_Port"
binding="tns:TransportKerberos_Binding">
<soap:address location="
http://wkengchoi.global.sdl.corp:9080/jaxws-sts/sts" />
</wsdl:port>
</wsdl:service>
When I run my client toward UTEncrypted_Port, I am getting following
exception. So, it doesn't like relative address.
Exception in thread "main" javax.xml.ws.WebServiceException: Could not send
Message.
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:145)
at $Proxy25.doubleIt(Unknown Source)
at client.WSClient.doubleIt(WSClient.java:18)
at client.WSClient.main(WSClient.java:11)
*Caused by: java.net.MalformedURLException: no protocol: /UTEncrypted*
at java.net.URL.<init>(URL.java:567)
at java.net.URL.<init>(URL.java:464)
at java.net.URL.<init>(URL.java:413)
at
org.apache.cxf.transport.http.HTTPConduit.getURL(HTTPConduit.java:752)
at
org.apache.cxf.transport.http.HTTPConduit.getURL(HTTPConduit.java:741)
at
org.apache.cxf.transport.http.HTTPConduit.setupURL(HTTPConduit.java:685)
at
org.apache.cxf.transport.http.HTTPConduit.prepare(HTTPConduit.java:474)
at
org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:46)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:532)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:464)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:367)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:320)
at
org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:722)
at
org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:602)
at
org.apache.cxf.ws.security.trust.STSClient.requestSecurityToken(STSClient.java:594)
at
org.apache.cxf.ws.security.policy.interceptors.IssuedTokenInterceptorProvider$IssuedTokenOutInterceptor.getTokenFromSTS(IssuedTokenInterceptorProvider.java:404)
at
org.apache.cxf.ws.security.policy.interceptors.IssuedTokenInterceptorProvider$IssuedTokenOutInterceptor.handleMessage(IssuedTokenInterceptorProvider.java:188)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:532)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:464)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:367)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:320)
at
org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:89)
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)
Thanks.
Gina
On Wed, Jul 11, 2012 at 5:30 AM, Colm O hEigeartaigh <co...@apache.org>wrote:
> Hi Gina,
>
> Yes your changes are correct - I have updated the STS config.
>
> Colm.
>
>
> On Tue, Jul 10, 2012 at 7:03 PM, Gina Choi <gi...@gmail.com> wrote:
>
>> Thanks for quick fix. Both cxf-ut.xml and cxf-x509.xml are complaining
>> about bean properties name when I enable them. So, I made following changes
>> in cxf-ut.xml.
>>
>> 1. Commented out "encryptionName".
>>
>> <bean id="utService"
>>
>> class="org.apache.cxf.sts.service.StaticService">
>>
>> <property name="endpoints" ref="utEndpoints"/>
>>
>> <!--property name="encryptionName" value="myservicekey"/-->
>>
>> </bean>
>>
>>
>> 2. Changed signatureProperties to signaturePropertiesFile. Changed
>> encryptionProperties to encryptionPropertiesFile like bellow.
>>
>> <bean id="utSTSProperties"
>>
>> 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>
>>
>>
>> I also made similar changed on cxf-x509.xml like bellow. I don't know if
>> this is right way to fix it, but at least it prevents exceptions.
>>
>> <bean id="x509Service"
>>
>> class="org.apache.cxf.sts.service.StaticService">
>>
>> <property name="endpoints" ref="x509Endpoints"/>
>>
>> <!--property name="encryptionName" value="myservicekey"/-->
>>
>> </bean>
>>
>>
>>
>> <bean id="x509STSProperties"
>>
>> 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>
>>
>> <bean id="utSTSProperties"
>>
>> 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>
>>
>>
>>
>> Thanks.
>>
>> Gina
>>
>>
>> On Tue, Jul 10, 2012 at 11:09 AM, Colm O hEigeartaigh <
>> coheigea@apache.org> wrote:
>>
>>> There's a bug in the cxf-encrypted-ut.xml shipped with Fediz. I've
>>> merged a
>>> fix here:
>>>
>>> http://svn.apache.org/viewvc?view=revision&revision=1359717
>>>
>>> Colm.
>>>
>>
>
>
> --
> Colm O hEigeartaigh
>
> Talend Community Coder
> http://coders.talend.com
>
>
Re: Soap address for Apache CXF-Fediz STS active end points
Posted by Colm O hEigeartaigh <co...@apache.org>.
Hi Gina,
Yes your changes are correct - I have updated the STS config.
Colm.
On Tue, Jul 10, 2012 at 7:03 PM, Gina Choi <gi...@gmail.com> wrote:
> Thanks for quick fix. Both cxf-ut.xml and cxf-x509.xml are complaining
> about bean properties name when I enable them. So, I made following changes
> in cxf-ut.xml.
>
> 1. Commented out "encryptionName".
>
> <bean id="utService"
>
> class="org.apache.cxf.sts.service.StaticService">
>
> <property name="endpoints" ref="utEndpoints"/>
>
> <!--property name="encryptionName" value="myservicekey"/-->
>
> </bean>
>
>
> 2. Changed signatureProperties to signaturePropertiesFile. Changed
> encryptionProperties to encryptionPropertiesFile like bellow.
>
> <bean id="utSTSProperties"
>
> 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>
>
>
> I also made similar changed on cxf-x509.xml like bellow. I don't know if
> this is right way to fix it, but at least it prevents exceptions.
>
> <bean id="x509Service"
>
> class="org.apache.cxf.sts.service.StaticService">
>
> <property name="endpoints" ref="x509Endpoints"/>
>
> <!--property name="encryptionName" value="myservicekey"/-->
>
> </bean>
>
>
>
> <bean id="x509STSProperties"
>
> 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>
>
> <bean id="utSTSProperties"
>
> 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>
>
>
>
> Thanks.
>
> Gina
>
>
> On Tue, Jul 10, 2012 at 11:09 AM, Colm O hEigeartaigh <coheigea@apache.org
> > wrote:
>
>> There's a bug in the cxf-encrypted-ut.xml shipped with Fediz. I've merged
>> a
>> fix here:
>>
>> http://svn.apache.org/viewvc?view=revision&revision=1359717
>>
>> Colm.
>>
>
--
Colm O hEigeartaigh
Talend Community Coder
http://coders.talend.com
Re: Soap address for Apache CXF-Fediz STS active end points
Posted by Gina Choi <gi...@gmail.com>.
Thanks for quick fix. Both cxf-ut.xml and cxf-x509.xml are complaining
about bean properties name when I enable them. So, I made following changes
in cxf-ut.xml.
1. Commented out "encryptionName".
<bean id="utService"
class="org.apache.cxf.sts.service.StaticService">
<property name="endpoints" ref="utEndpoints"/>
<!--property name="encryptionName" value="myservicekey"/-->
</bean>
2. Changed signatureProperties to signaturePropertiesFile. Changed
encryptionProperties to encryptionPropertiesFile like bellow.
<bean id="utSTSProperties"
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>
I also made similar changed on cxf-x509.xml like bellow. I don't know if
this is right way to fix it, but at least it prevents exceptions.
<bean id="x509Service"
class="org.apache.cxf.sts.service.StaticService">
<property name="endpoints" ref="x509Endpoints"/>
<!--property name="encryptionName" value="myservicekey"/-->
</bean>
<bean id="x509STSProperties"
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>
<bean id="utSTSProperties"
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>
Thanks.
Gina
On Tue, Jul 10, 2012 at 11:09 AM, Colm O hEigeartaigh
<co...@apache.org>wrote:
> There's a bug in the cxf-encrypted-ut.xml shipped with Fediz. I've merged a
> fix here:
>
> http://svn.apache.org/viewvc?view=revision&revision=1359717
>
> Colm.
>
Re: Soap address for Apache CXF-Fediz STS active end points
Posted by Colm O hEigeartaigh <co...@apache.org>.
There's a bug in the cxf-encrypted-ut.xml shipped with Fediz. I've merged a
fix here:
http://svn.apache.org/viewvc?view=revision&revision=1359717
Colm.
On Tue, Jul 10, 2012 at 3:23 PM, Gina Choi <gi...@gmail.com> wrote:
> I found problem with exceptions. some endpoints for example
> cxf-encrypted-ut.xml used incorrect bean properties name. That's caused
> exception. I can easily find several problems. It looks like these
> endpoints needs some work to be used.
>
> On Tue, Jul 10, 2012 at 9:27 AM, Glen Mazza <gm...@talend.com> wrote:
>
> > OK, I stand corrected then, having multiple endpoints open is necessary
> in
> > many cases. I'm unsure whether Fediz, or the CXF STS itself for that
> > matter, has all possibilities as given in the WSDL presently implemented
> > and available--Fediz is still quite new of course, and the fact that the
> > some endpoints are commented out might indicate they're not ready yet.
> > This is more of an Oli (possibly Colm) question.
> >
> > Glen
> >
> >
> > On 07/10/2012 09:07 AM, Gina Choi wrote:
> >
> >> Hi Glen,
> >>
> >> As always, thanks for your response and nice tutorials.
> >>
> >> I might had misunderstanding about Fediz STS. I expect that Fediz STS
> >> provides passive profile(SSO) and active profile with several end
> points.
> >> ADFS has around 37 endpoints available and depends on needs, we can turn
> >> off most of them, leave 5 or 6 on. This is because applications
> integrated
> >> using SSO requires different end point for their web services. For our
> >> case, when we call from .NET, we used windowsmixed, but when we call
> from
> >> Java, we used usernamixed and both endpoints are available same time.
> >>
> >> Currently I have both Transport_Port and TransportUT_Port are available
> >> and these two are needed to support passive profile if I understand
> >> correct. On top of these, I need UTEncrypted_Port at least, so that soap
> >> client is authenticated by Fediz IDP STS using encrypted username token.
> >> X509_Port is very useful as well. Under my
> tomcat-idp\webapps\**fedizidpsts\WEB-INF
> >> directory, I have cxf-encrypted-ut.xml, cxf-transport.xml, cxf-x509.xml,
> >> cxf-ut.xml and cxf-servlet.xml. So, I should able to turn on
> >> cxf-encrypted-ut. I have following content Inside cxf-servlet.xml. So by
> >> default, except cxf-transport.xml, everything else are commented out.
> >>
> >> <import resource="cxf-transport.xml"/>
> >> <!--
> >> <import resource="cxf-ut.xml"/>
> >> <import resource="cxf-encrypted-ut.**xml"/>
> >> <import resource="cxf-x509.xml"/>
> >> -->
> >>
> >> If I uncomment any of them, I am getting following exception. In this
> >> case, I uncommented cxf-encrypted-ut.xml. Perhaps if I configured
> something
> >> incorrectly?
> >>
> >> org.springframework.beans.**factory.BeanCreationException: Error
> >> creating bean with name 'encryptedUtSTSProviderBean' defined in URL
> >> [jndi:/localhost/fedizidpsts/**WEB-INF/cxf-encrypted-ut.xml]: Cannot
> >> resolve reference to bean 'encryptedUtIssueDelegate' while setting bean
> >> property 'issueOperation'; nested exception is
> org.springframework.beans.
> >> **factory.BeanCreationException: Error creating bean with name
> >> 'encryptedUtIssueDelegate' defined in URL
> [jndi:/localhost/fedizidpsts/**WEB-INF/cxf-encrypted-ut.xml]:
> >> Cannot resolve reference to bean 'encryptedUtService' while setting bean
> >> property 'services'; nested exception is
> org.springframework.beans.**factory.BeanCreationException:
> >> Error creating bean with name 'encryptedUtService' defined in URL
> >> [jndi:/localhost/fedizidpsts/**WEB-INF/cxf-encrypted-ut.xml]: Error
> >> setting property values; nested exception is
> org.springframework.beans.**NotWritablePropertyException:
> >> Invalid property 'encryptionName' of bean class
> [org.apache.cxf.sts.service.
> >> **StaticService]: Bean property 'encryptionName' is not writable or has
> >> an invalid setter method. Does the parameter type of the setter match
> the
> >> return type of the getter?
> >>
> >> org.springframework.beans.**factory.support.**
> >> BeanDefinitionValueResolver.**resolveReference(**
> >> BeanDefinitionValueResolver.**java:328)
> >>
> >> org.springframework.beans.**factory.support.**
> >> BeanDefinitionValueResolver.**resolveValueIfNecessary(**
> >> BeanDefinitionValueResolver.**java:106)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.applyPropertyValues(**
> >> AbstractAutowireCapableBeanFac**tory.java:1327)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.populateBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:1085)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.doCreateBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:516)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.createBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:455)
> >>
> >> org.springframework.beans.**factory.support.**AbstractBeanFactory$1.**
> >> getObject(AbstractBeanFactory.**java:293)
> >>
> >> org.springframework.beans.**factory.support.**
> >> DefaultSingletonBeanRegistry.**getSingleton(**
> >> DefaultSingletonBeanRegistry.**java:222)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractBeanFactory.doGetBean(**AbstractBeanFactory.java:290)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractBeanFactory.getBean(**AbstractBeanFactory.java:192)
> >>
> >>
> org.springframework.beans.**factory.support.**DefaultListableBeanFactory.
> >> **preInstantiateSingletons(**DefaultListableBeanFactory.**java:585)
> >>
> >> org.springframework.context.**support.**AbstractApplicationContext.**
> >> finishBeanFactoryInitializatio**n(AbstractApplicationContext.**java:895)
> >>
> >> org.springframework.context.**support.**AbstractApplicationContext.**
> >> refresh(**AbstractApplicationContext.**java:425)
> >>
> >> org.apache.cxf.transport.**servlet.CXFServlet.**createSpringContext(**
> >> CXFServlet.java:146)
> >>
> >> org.apache.cxf.transport.**servlet.CXFServlet.loadBus(**
> >> CXFServlet.java:72)
> >>
> >> org.apache.cxf.transport.**servlet.CXFNonSpringServlet.**
> >> init(CXFNonSpringServlet.java:**67)
> >>
> >> org.apache.catalina.**authenticator.**AuthenticatorBase.invoke(**
> >> AuthenticatorBase.java:472)
> >>
> >> org.apache.catalina.valves.**ErrorReportValve.invoke(**
> >> ErrorReportValve.java:98)
> >>
> >> org.apache.catalina.valves.**AccessLogValve.invoke(**
> >> AccessLogValve.java:927)
> >>
> >> org.apache.catalina.connector.**CoyoteAdapter.service(**
> >> CoyoteAdapter.java:407)
> >>
> >> org.apache.coyote.http11.**AbstractHttp11Processor.**process(**
> >> AbstractHttp11Processor.java:**999)
> >>
> >> org.apache.coyote.**AbstractProtocol$**AbstractConnectionHandler.**
> >> process(AbstractProtocol.java:**565)
> >>
> >> org.apache.tomcat.util.net.**JIoEndpoint$SocketProcessor.**
> >> run(JIoEndpoint.java:307)
> >>
> >> java.util.concurrent.**ThreadPoolExecutor$Worker.**
> >> runTask(ThreadPoolExecutor.**java:886)
> >>
> >> java.util.concurrent.**ThreadPoolExecutor$Worker.run(**
> >> ThreadPoolExecutor.java:908)
> >>
> >> java.lang.Thread.run(Thread.**java:662)
> >>
> >> *root cause*
> >>
> >>
> >> org.springframework.beans.**factory.BeanCreationException: Error
> >> creating bean with name 'encryptedUtIssueDelegate' defined in URL
> >> [jndi:/localhost/fedizidpsts/**WEB-INF/cxf-encrypted-ut.xml]: Cannot
> >> resolve reference to bean 'encryptedUtService' while setting bean
> property
> >> 'services'; nested exception is
> org.springframework.beans.**factory.BeanCreationException:
> >> Error creating bean with name 'encryptedUtService' defined in URL
> >> [jndi:/localhost/fedizidpsts/**WEB-INF/cxf-encrypted-ut.xml]: Error
> >> setting property values; nested exception is
> org.springframework.beans.**NotWritablePropertyException:
> >> Invalid property 'encryptionName' of bean class
> [org.apache.cxf.sts.service.
> >> **StaticService]: Bean property 'encryptionName' is not writable or has
> >> an invalid setter method. Does the parameter type of the setter match
> the
> >> return type of the getter?
> >>
> >> org.springframework.beans.**factory.support.**
> >> BeanDefinitionValueResolver.**resolveReference(**
> >> BeanDefinitionValueResolver.**java:328)
> >>
> >> org.springframework.beans.**factory.support.**
> >> BeanDefinitionValueResolver.**resolveValueIfNecessary(**
> >> BeanDefinitionValueResolver.**java:106)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.applyPropertyValues(**
> >> AbstractAutowireCapableBeanFac**tory.java:1327)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.populateBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:1085)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.doCreateBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:516)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.createBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:455)
> >>
> >> org.springframework.beans.**factory.support.**AbstractBeanFactory$1.**
> >> getObject(AbstractBeanFactory.**java:293)
> >>
> >> org.springframework.beans.**factory.support.**
> >> DefaultSingletonBeanRegistry.**getSingleton(**
> >> DefaultSingletonBeanRegistry.**java:222)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractBeanFactory.doGetBean(**AbstractBeanFactory.java:290)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractBeanFactory.getBean(**AbstractBeanFactory.java:192)
> >>
> >> org.springframework.beans.**factory.support.**
> >> BeanDefinitionValueResolver.**resolveReference(**
> >> BeanDefinitionValueResolver.**java:322)
> >>
> >> org.springframework.beans.**factory.support.**
> >> BeanDefinitionValueResolver.**resolveValueIfNecessary(**
> >> BeanDefinitionValueResolver.**java:106)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.applyPropertyValues(**
> >> AbstractAutowireCapableBeanFac**tory.java:1327)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.populateBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:1085)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.doCreateBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:516)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.createBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:455)
> >>
> >> org.springframework.beans.**factory.support.**AbstractBeanFactory$1.**
> >> getObject(AbstractBeanFactory.**java:293)
> >>
> >> org.springframework.beans.**factory.support.**
> >> DefaultSingletonBeanRegistry.**getSingleton(**
> >> DefaultSingletonBeanRegistry.**java:222)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractBeanFactory.doGetBean(**AbstractBeanFactory.java:290)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractBeanFactory.getBean(**AbstractBeanFactory.java:192)
> >>
> >>
> org.springframework.beans.**factory.support.**DefaultListableBeanFactory.
> >> **preInstantiateSingletons(**DefaultListableBeanFactory.**java:585)
> >>
> >> org.springframework.context.**support.**AbstractApplicationContext.**
> >> finishBeanFactoryInitializatio**n(AbstractApplicationContext.**java:895)
> >>
> >> org.springframework.context.**support.**AbstractApplicationContext.**
> >> refresh(**AbstractApplicationContext.**java:425)
> >>
> >> org.apache.cxf.transport.**servlet.CXFServlet.**createSpringContext(**
> >> CXFServlet.java:146)
> >>
> >> org.apache.cxf.transport.**servlet.CXFServlet.loadBus(**
> >> CXFServlet.java:72)
> >>
> >> org.apache.cxf.transport.**servlet.CXFNonSpringServlet.**
> >> init(CXFNonSpringServlet.java:**67)
> >>
> >> org.apache.catalina.**authenticator.**AuthenticatorBase.invoke(**
> >> AuthenticatorBase.java:472)
> >>
> >> org.apache.catalina.valves.**ErrorReportValve.invoke(**
> >> ErrorReportValve.java:98)
> >>
> >> org.apache.catalina.valves.**AccessLogValve.invoke(**
> >> AccessLogValve.java:927)
> >>
> >> org.apache.catalina.connector.**CoyoteAdapter.service(**
> >> CoyoteAdapter.java:407)
> >>
> >> org.apache.coyote.http11.**AbstractHttp11Processor.**process(**
> >> AbstractHttp11Processor.java:**999)
> >>
> >> org.apache.coyote.**AbstractProtocol$**AbstractConnectionHandler.**
> >> process(AbstractProtocol.java:**565)
> >>
> >> org.apache.tomcat.util.net.**JIoEndpoint$SocketProcessor.**
> >> run(JIoEndpoint.java:307)
> >>
> >> java.util.concurrent.**ThreadPoolExecutor$Worker.**
> >> runTask(ThreadPoolExecutor.**java:886)
> >>
> >> java.util.concurrent.**ThreadPoolExecutor$Worker.run(**
> >> ThreadPoolExecutor.java:908)
> >>
> >> java.lang.Thread.run(Thread.**java:662)
> >>
> >> *root cause*
> >>
> >>
> >> org.springframework.beans.**factory.BeanCreationException: Error
> >> creating bean with name 'encryptedUtService' defined in URL
> >> [jndi:/localhost/fedizidpsts/**WEB-INF/cxf-encrypted-ut.xml]: Error
> >> setting property values; nested exception is
> org.springframework.beans.**NotWritablePropertyException:
> >> Invalid property 'encryptionName' of bean class
> [org.apache.cxf.sts.service.
> >> **StaticService]: Bean property 'encryptionName' is not writable or has
> >> an invalid setter method. Does the parameter type of the setter match
> the
> >> return type of the getter?
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.applyPropertyValues(**
> >> AbstractAutowireCapableBeanFac**tory.java:1363)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.populateBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:1085)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.doCreateBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:516)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.createBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:455)
> >>
> >> org.springframework.beans.**factory.support.**AbstractBeanFactory$1.**
> >> getObject(AbstractBeanFactory.**java:293)
> >>
> >> org.springframework.beans.**factory.support.**
> >> DefaultSingletonBeanRegistry.**getSingleton(**
> >> DefaultSingletonBeanRegistry.**java:222)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractBeanFactory.doGetBean(**AbstractBeanFactory.java:290)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractBeanFactory.getBean(**AbstractBeanFactory.java:192)
> >>
> >> org.springframework.beans.**factory.support.**
> >> BeanDefinitionValueResolver.**resolveReference(**
> >> BeanDefinitionValueResolver.**java:322)
> >>
> >> org.springframework.beans.**factory.support.**
> >> BeanDefinitionValueResolver.**resolveValueIfNecessary(**
> >> BeanDefinitionValueResolver.**java:106)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.applyPropertyValues(**
> >> AbstractAutowireCapableBeanFac**tory.java:1327)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.populateBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:1085)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.doCreateBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:516)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.createBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:455)
> >>
> >> org.springframework.beans.**factory.support.**AbstractBeanFactory$1.**
> >> getObject(AbstractBeanFactory.**java:293)
> >>
> >> org.springframework.beans.**factory.support.**
> >> DefaultSingletonBeanRegistry.**getSingleton(**
> >> DefaultSingletonBeanRegistry.**java:222)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractBeanFactory.doGetBean(**AbstractBeanFactory.java:290)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractBeanFactory.getBean(**AbstractBeanFactory.java:192)
> >>
> >> org.springframework.beans.**factory.support.**
> >> BeanDefinitionValueResolver.**resolveReference(**
> >> BeanDefinitionValueResolver.**java:322)
> >>
> >> org.springframework.beans.**factory.support.**
> >> BeanDefinitionValueResolver.**resolveValueIfNecessary(**
> >> BeanDefinitionValueResolver.**java:106)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.applyPropertyValues(**
> >> AbstractAutowireCapableBeanFac**tory.java:1327)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.populateBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:1085)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.doCreateBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:516)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.createBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:455)
> >>
> >> org.springframework.beans.**factory.support.**AbstractBeanFactory$1.**
> >> getObject(AbstractBeanFactory.**java:293)
> >>
> >> org.springframework.beans.**factory.support.**
> >> DefaultSingletonBeanRegistry.**getSingleton(**
> >> DefaultSingletonBeanRegistry.**java:222)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractBeanFactory.doGetBean(**AbstractBeanFactory.java:290)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractBeanFactory.getBean(**AbstractBeanFactory.java:192)
> >>
> >>
> org.springframework.beans.**factory.support.**DefaultListableBeanFactory.
> >> **preInstantiateSingletons(**DefaultListableBeanFactory.**java:585)
> >>
> >> org.springframework.context.**support.**AbstractApplicationContext.**
> >> finishBeanFactoryInitializatio**n(AbstractApplicationContext.**java:895)
> >>
> >> org.springframework.context.**support.**AbstractApplicationContext.**
> >> refresh(**AbstractApplicationContext.**java:425)
> >>
> >> org.apache.cxf.transport.**servlet.CXFServlet.**createSpringContext(**
> >> CXFServlet.java:146)
> >>
> >> org.apache.cxf.transport.**servlet.CXFServlet.loadBus(**
> >> CXFServlet.java:72)
> >>
> >> org.apache.cxf.transport.**servlet.CXFNonSpringServlet.**
> >> init(CXFNonSpringServlet.java:**67)
> >>
> >> org.apache.catalina.**authenticator.**AuthenticatorBase.invoke(**
> >> AuthenticatorBase.java:472)
> >>
> >> org.apache.catalina.valves.**ErrorReportValve.invoke(**
> >> ErrorReportValve.java:98)
> >>
> >> org.apache.catalina.valves.**AccessLogValve.invoke(**
> >> AccessLogValve.java:927)
> >>
> >> org.apache.catalina.connector.**CoyoteAdapter.service(**
> >> CoyoteAdapter.java:407)
> >>
> >> org.apache.coyote.http11.**AbstractHttp11Processor.**process(**
> >> AbstractHttp11Processor.java:**999)
> >>
> >> org.apache.coyote.**AbstractProtocol$**AbstractConnectionHandler.**
> >> process(AbstractProtocol.java:**565)
> >>
> >> org.apache.tomcat.util.net.**JIoEndpoint$SocketProcessor.**
> >> run(JIoEndpoint.java:307)
> >>
> >> java.util.concurrent.**ThreadPoolExecutor$Worker.**
> >> runTask(ThreadPoolExecutor.**java:886)
> >>
> >> java.util.concurrent.**ThreadPoolExecutor$Worker.run(**
> >> ThreadPoolExecutor.java:908)
> >>
> >> java.lang.Thread.run(Thread.**java:662)
> >>
> >> *root cause*
> >>
> >>
> >> org.springframework.beans.**NotWritablePropertyException: Invalid
> >> property 'encryptionName' of bean class
> [org.apache.cxf.sts.service.**StaticService]:
> >> Bean property 'encryptionName' is not writable or has an invalid setter
> >> method. Does the parameter type of the setter match the return type of
> the
> >> getter?
> >>
> >> org.springframework.beans.**BeanWrapperImpl.**setPropertyValue(**
> >> BeanWrapperImpl.java:1052)
> >>
> >> org.springframework.beans.**BeanWrapperImpl.**setPropertyValue(**
> >> BeanWrapperImpl.java:921)
> >>
> >>
> org.springframework.beans.**AbstractPropertyAccessor.**setPropertyValues(
> >> **AbstractPropertyAccessor.java:**76)
> >>
> >>
> org.springframework.beans.**AbstractPropertyAccessor.**setPropertyValues(
> >> **AbstractPropertyAccessor.java:**58)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.applyPropertyValues(**
> >> AbstractAutowireCapableBeanFac**tory.java:1360)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.populateBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:1085)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.doCreateBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:516)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.createBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:455)
> >>
> >> org.springframework.beans.**factory.support.**AbstractBeanFactory$1.**
> >> getObject(AbstractBeanFactory.**java:293)
> >>
> >> org.springframework.beans.**factory.support.**
> >> DefaultSingletonBeanRegistry.**getSingleton(**
> >> DefaultSingletonBeanRegistry.**java:222)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractBeanFactory.doGetBean(**AbstractBeanFactory.java:290)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractBeanFactory.getBean(**AbstractBeanFactory.java:192)
> >>
> >> org.springframework.beans.**factory.support.**
> >> BeanDefinitionValueResolver.**resolveReference(**
> >> BeanDefinitionValueResolver.**java:322)
> >>
> >> org.springframework.beans.**factory.support.**
> >> BeanDefinitionValueResolver.**resolveValueIfNecessary(**
> >> BeanDefinitionValueResolver.**java:106)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.applyPropertyValues(**
> >> AbstractAutowireCapableBeanFac**tory.java:1327)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.populateBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:1085)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.doCreateBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:516)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.createBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:455)
> >>
> >> org.springframework.beans.**factory.support.**AbstractBeanFactory$1.**
> >> getObject(AbstractBeanFactory.**java:293)
> >>
> >> org.springframework.beans.**factory.support.**
> >> DefaultSingletonBeanRegistry.**getSingleton(**
> >> DefaultSingletonBeanRegistry.**java:222)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractBeanFactory.doGetBean(**AbstractBeanFactory.java:290)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractBeanFactory.getBean(**AbstractBeanFactory.java:192)
> >>
> >> org.springframework.beans.**factory.support.**
> >> BeanDefinitionValueResolver.**resolveReference(**
> >> BeanDefinitionValueResolver.**java:322)
> >>
> >> org.springframework.beans.**factory.support.**
> >> BeanDefinitionValueResolver.**resolveValueIfNecessary(**
> >> BeanDefinitionValueResolver.**java:106)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.applyPropertyValues(**
> >> AbstractAutowireCapableBeanFac**tory.java:1327)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.populateBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:1085)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.doCreateBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:516)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractAutowireCapableBeanFac**tory.createBean(**
> >> AbstractAutowireCapableBeanFac**tory.java:455)
> >>
> >> org.springframework.beans.**factory.support.**AbstractBeanFactory$1.**
> >> getObject(AbstractBeanFactory.**java:293)
> >>
> >> org.springframework.beans.**factory.support.**
> >> DefaultSingletonBeanRegistry.**getSingleton(**
> >> DefaultSingletonBeanRegistry.**java:222)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractBeanFactory.doGetBean(**AbstractBeanFactory.java:290)
> >>
> >> org.springframework.beans.**factory.support.**
> >> AbstractBeanFactory.getBean(**AbstractBeanFactory.java:192)
> >>
> >>
> org.springframework.beans.**factory.support.**DefaultListableBeanFactory.
> >> **preInstantiateSingletons(**DefaultListableBeanFactory.**java:585)
> >>
> >> org.springframework.context.**support.**AbstractApplicationContext.**
> >> finishBeanFactoryInitializatio**n(AbstractApplicationContext.**java:895)
> >>
> >> org.springframework.context.**support.**AbstractApplicationContext.**
> >> refresh(**AbstractApplicationContext.**java:425)
> >>
> >> org.apache.cxf.transport.**servlet.CXFServlet.**createSpringContext(**
> >> CXFServlet.java:146)
> >>
> >> org.apache.cxf.transport.**servlet.CXFServlet.loadBus(**
> >> CXFServlet.java:72)
> >>
> >> org.apache.cxf.transport.**servlet.CXFNonSpringServlet.**
> >> init(CXFNonSpringServlet.java:**67)
> >>
> >> org.apache.catalina.**authenticator.**AuthenticatorBase.invoke(**
> >> AuthenticatorBase.java:472)
> >>
> >> org.apache.catalina.valves.**ErrorReportValve.invoke(**
> >> ErrorReportValve.java:98)
> >>
> >> org.apache.catalina.valves.**AccessLogValve.invoke(**
> >> AccessLogValve.java:927)
> >>
> >> org.apache.catalina.connector.**CoyoteAdapter.service(**
> >> CoyoteAdapter.java:407)
> >>
> >> org.apache.coyote.http11.**AbstractHttp11Processor.**process(**
> >> AbstractHttp11Processor.java:**999)
> >>
> >> org.apache.coyote.**AbstractProtocol$**AbstractConnectionHandler.**
> >> process(AbstractProtocol.java:**565)
> >>
> >> org.apache.tomcat.util.net.**JIoEndpoint$SocketProcessor.**
> >> run(JIoEndpoint.java:307)
> >>
> >> java.util.concurrent.**ThreadPoolExecutor$Worker.**
> >> runTask(ThreadPoolExecutor.**java:886)
> >>
> >> java.util.concurrent.**ThreadPoolExecutor$Worker.run(**
> >> ThreadPoolExecutor.java:908)
> >>
> >> java.lang.Thread.run(Thread.**java:662)
> >>
> >>
> >>
> >> On Mon, Jul 9, 2012 at 2:00 PM, Glen Mazza <gmazza@talend.com <mailto:
> >> gmazza@talend.com>> wrote:
> >>
> >> Yes, the http://localhost:8080/jaxws-**sts/sts<
> http://localhost:8080/jaxws-sts/sts>addresses are dummy
> >> addresses, you'll see the actual ones once you deploy the STS.
> >> Only a SOAP client relies on the soap:address location fields
> >> (and for those it must be accurate), for web service endpoints
> >> they use an algorithm as described in Note #2 here:
> >> http://www.jroller.com/gmazza/**entry/web_service_tutorial#**notes<
> http://www.jroller.com/gmazza/entry/web_service_tutorial#notes>
> >> .
> >>
> >> My browser returned similar (but not identical) results:
> >>
> >>
> >> <wsdl:service name="SecurityTokenService">
> >> <wsdl:port binding="wstrust:X509_Binding"**name="X509_Port">
> >> <soap:address location="http://localhost:
> **8080/jaxws-sts/sts<http://localhost:8080/jaxws-sts/sts>
> >> "/>
> >> </wsdl:port>
> >> <wsdl:port
> >> binding="wstrust:TransportUT_**Binding"name="TransportUT_**Port">
> >> <soap:address
> >> location="https://localhost:**9443/fedizidpsts/STSService<
> https://localhost:9443/fedizidpsts/STSService>
> >> "/>
> >>
> >> </wsdl:port>
> >> <wsdl:port
> >> binding="wstrust:**TransportKerberos_Binding"**
> >> name="TransportKerberos_Port">
> >> <soap:address location="http://localhost:
> **8080/jaxws-sts/sts<http://localhost:8080/jaxws-sts/sts>
> >> "/>
> >> </wsdl:port>
> >> <wsdl:port
> >> binding="wstrust:UTEncrypted_**Binding"name="UTEncrypted_**Port">
> >> <soap:address location="http://localhost:
> **8080/jaxws-sts/sts<http://localhost:8080/jaxws-sts/sts>
> >> "/>
> >> </wsdl:port>
> >> <wsdl:port
> >> binding="wstrust:Transport_**Binding"name="Transport_Port">
> >> <soap:address
> >> location="https://localhost:
> **9443/fedizidpsts/**STSServiceTransport<
> https://localhost:9443/fedizidpsts/STSServiceTransport>
> >> "/>
> >>
> >> </wsdl:port>
> >> <wsdl:port binding="wstrust:UT_Binding"**name="UT_Port">
> >> <soap:address location="http://localhost:
> **8080/jaxws-sts/sts<http://localhost:8080/jaxws-sts/sts>
> >> "/>
> >> </wsdl:port>
> >> </wsdl:service>
> >>
> >>
> >> Offhand, I would say the problem is in the Fediz STS
> >> configuration, it shouldn't need to have six ports open (one
> >> should be sufficient). How do you want to authenticate against
> >> the IDP STS? That will determine which port needs configuration
> >> and which ports should be deleted from your WSDL.
> >>
> >> Regards,
> >> Glen
> >>
> >>
> >> On 07/09/2012 01:16 PM, Gina Choi wrote:
> >>
> >> I just browsed my CXF-Fediz wsdl file, I am seeing following.
> >> Both
> >> TransportUT_Port and Transport_Port soap address look valid. I
> >> need to have
> >> valid soap address for UTEncrypted_Port and UT_Por. I must
> >> missing some
> >> additional configuration.
> >>
> >> <wsdl:service name="SecurityTokenService">
> >> <wsdl:port binding="wstrust:X509_Binding" name="X509_Port">
> >> <soap:address location="
> >> http://wkqasv0805.global.sdl.**corp:8080/jaxws-sts/sts<
> http://wkqasv0805.global.sdl.corp:8080/jaxws-sts/sts>
> >> "/>
> >> </wsdl:port>
> >> <wsdl:port binding="wstrust:TransportUT_**Binding"
> >> name="TransportUT_Port">
> >> <soap:address location="
> >> http://wkqasv0805.global.sdl.
> **corp:9080/fedizidpsts/**STSService<
> http://wkqasv0805.global.sdl.corp:9080/fedizidpsts/STSService>
> >> "/>
> >> </wsdl:port>
> >> <wsdl:port binding="wstrust:**TransportKerberos_Binding"
> >> name="TransportKerberos_Port">
> >> <soap:address location="
> >> http://wkqasv0805.global.sdl.**corp:8080/jaxws-sts/sts<
> http://wkqasv0805.global.sdl.corp:8080/jaxws-sts/sts>
> >> "/>
> >> </wsdl:port>
> >> <wsdl:port binding="wstrust:UTEncrypted_**Binding"
> >> name="UTEncrypted_Port">
> >> <soap:address location="
> >> http://wkqasv0805.global.sdl.**corp:8080/jaxws-sts/sts<
> http://wkqasv0805.global.sdl.corp:8080/jaxws-sts/sts>
> >> "/>
> >> </wsdl:port>
> >> <wsdl:port binding="wstrust:Transport_**Binding"
> >> name="Transport_Port">
> >> <soap:address location="/**STSServiceTransport"/>
> >> </wsdl:port>
> >> <wsdl:port binding="wstrust:UT_Binding" name="UT_Port">
> >> <soap:address location="
> >> http://wkqasv0805.global.sdl.**corp:8080/jaxws-sts/sts<
> http://wkqasv0805.global.sdl.corp:8080/jaxws-sts/sts>
> >> "/>
> >> </wsdl:port>
> >> </wsdl:service>
> >>
> >> On Mon, Jul 9, 2012 at 12:58 PM, Gina Choi
> >> <ginachoi88@gmail.com <ma...@gmail.com>> wrote:
> >>
> >> Hi all,
> >>
> >>
> >> We try to integrate .NET application for SSO+Web security
> >> using CXF-Fediz
> >> STS. Passive profile worked well without any problem. Now
> >> we try to call
> >> cxf-encrypted-ut.xml endpoint using actas and we need a
> >> soap address for
> >> this endpoint. If we look at ADFS2.0 wsdl file, I have
> >> following part.
> >>
> >> <wsdl:service name="SecurityTokenService">
> >> <wsdl:port name="UserNameWSTrustBinding_**
> >> IWSTrust13Async2"
> >> binding="tns:**UserNameWSTrustBinding_**IWSTrust13Async2">
> >> <soap12:address location="
> >> https://strts01.ams.dev/adfs/**services/trust/13/**
> >> usernamemixed<
> https://strts01.ams.dev/adfs/services/trust/13/usernamemixed>
> >> "
> >> />
> >> <wsa10:EndpointReference>
> >> <wsa10:Address>
> >> https://strts01.ams.dev/adfs/**services/trust/13/**
> >> usernamemixed<
> https://strts01.ams.dev/adfs/services/trust/13/usernamemixed>
> >> </wsa10:Address>
> >> </wsa10:EndpointReference>
> >> </wsdl:port>
> >> </wsdl:service>
> >>
> >> I am looking for corresponding end point soap address(
> >> https://strts01.ams.dev/adfs/**services/trust/13/**
> >> usernamemixed<
> https://strts01.ams.dev/adfs/services/trust/13/usernamemixed>
> >> )
> >> from
> >> CXF-Fediz STS. If I look at ws-trust-1.4-service.wsdl
> >> file, we have
> >> following. Soap address for each ports are the same. How
> >> do we identify
> >> soap addresses? Do we need additional configuration? By
> >> the way, I
> >> currently I have CXF-Fediz STS + OpenLDAP environment.
> >>
> >> <wsdl:service name="SecurityTokenService">
> >> <wsdl:port name="UT_Port" binding="tns:UT_Binding">
> >> <soap:address
> >> location="http://localhost:**8080/jaxws-sts/sts<
> http://localhost:8080/jaxws-sts/sts>"
> >> />
> >> </wsdl:port>
> >> <wsdl:port name="X509_Port"
> binding="tns:X509_Binding">
> >> <soap:address
> >> location="http://localhost:**8080/jaxws-sts/sts<
> http://localhost:8080/jaxws-sts/sts>"
> >> />
> >> </wsdl:port>
> >> <wsdl:port name="Transport_Port"
> >> binding="tns:Transport_**Binding">
> >> <soap:address
> >> location="http://localhost:**8080/jaxws-sts/sts<
> http://localhost:8080/jaxws-sts/sts>"
> >> />
> >> </wsdl:port>
> >> <wsdl:port name="UTEncrypted_Port"
> >> binding="tns:UTEncrypted_**Binding">
> >> <soap:address
> >> location="http://localhost:**8080/jaxws-sts/sts<
> http://localhost:8080/jaxws-sts/sts>"
> >> />
> >> </wsdl:port>
> >> <wsdl:port name="TransportUT_Port"
> >> binding="tns:TransportUT_**Binding">
> >> <soap:address
> >> location="http://localhost:**8080/jaxws-sts/sts<
> http://localhost:8080/jaxws-sts/sts>"
> >> />
> >> </wsdl:port>
> >> <wsdl:port name="TransportKerberos_Port"
> >> binding="tns:**TransportKerberos_Binding">
> >> <soap:address location="
> >> http://wkengchoi.global.sdl.**corp:8080/jaxws-sts/sts<
> http://wkengchoi.global.sdl.corp:8080/jaxws-sts/sts>"
> >> />
> >> </wsdl:port>
> >> </wsdl:service>
> >>
> >> Thanks.
> >>
> >> Gina
> >>
> >>
> >>
> >> -- Glen Mazza
> >> Talend Community Coders
> >> coders.talend.com <http://coders.talend.com>
> >> blog: www.jroller.com/gmazza <http://www.jroller.com/gmazza**>
> >>
> >>
> >>
> >
> > --
> > Glen Mazza
> > Talend Community Coders
> > coders.talend.com
> > blog:www.jroller.com/gmazza
> >
> >
>
--
Colm O hEigeartaigh
Talend Community Coder
http://coders.talend.com
Re: Soap address for Apache CXF-Fediz STS active end points
Posted by Gina Choi <gi...@gmail.com>.
I found problem with exceptions. some endpoints for example
cxf-encrypted-ut.xml used incorrect bean properties name. That's caused
exception. I can easily find several problems. It looks like these
endpoints needs some work to be used.
On Tue, Jul 10, 2012 at 9:27 AM, Glen Mazza <gm...@talend.com> wrote:
> OK, I stand corrected then, having multiple endpoints open is necessary in
> many cases. I'm unsure whether Fediz, or the CXF STS itself for that
> matter, has all possibilities as given in the WSDL presently implemented
> and available--Fediz is still quite new of course, and the fact that the
> some endpoints are commented out might indicate they're not ready yet.
> This is more of an Oli (possibly Colm) question.
>
> Glen
>
>
> On 07/10/2012 09:07 AM, Gina Choi wrote:
>
>> Hi Glen,
>>
>> As always, thanks for your response and nice tutorials.
>>
>> I might had misunderstanding about Fediz STS. I expect that Fediz STS
>> provides passive profile(SSO) and active profile with several end points.
>> ADFS has around 37 endpoints available and depends on needs, we can turn
>> off most of them, leave 5 or 6 on. This is because applications integrated
>> using SSO requires different end point for their web services. For our
>> case, when we call from .NET, we used windowsmixed, but when we call from
>> Java, we used usernamixed and both endpoints are available same time.
>>
>> Currently I have both Transport_Port and TransportUT_Port are available
>> and these two are needed to support passive profile if I understand
>> correct. On top of these, I need UTEncrypted_Port at least, so that soap
>> client is authenticated by Fediz IDP STS using encrypted username token.
>> X509_Port is very useful as well. Under my tomcat-idp\webapps\**fedizidpsts\WEB-INF
>> directory, I have cxf-encrypted-ut.xml, cxf-transport.xml, cxf-x509.xml,
>> cxf-ut.xml and cxf-servlet.xml. So, I should able to turn on
>> cxf-encrypted-ut. I have following content Inside cxf-servlet.xml. So by
>> default, except cxf-transport.xml, everything else are commented out.
>>
>> <import resource="cxf-transport.xml"/>
>> <!--
>> <import resource="cxf-ut.xml"/>
>> <import resource="cxf-encrypted-ut.**xml"/>
>> <import resource="cxf-x509.xml"/>
>> -->
>>
>> If I uncomment any of them, I am getting following exception. In this
>> case, I uncommented cxf-encrypted-ut.xml. Perhaps if I configured something
>> incorrectly?
>>
>> org.springframework.beans.**factory.BeanCreationException: Error
>> creating bean with name 'encryptedUtSTSProviderBean' defined in URL
>> [jndi:/localhost/fedizidpsts/**WEB-INF/cxf-encrypted-ut.xml]: Cannot
>> resolve reference to bean 'encryptedUtIssueDelegate' while setting bean
>> property 'issueOperation'; nested exception is org.springframework.beans.
>> **factory.BeanCreationException: Error creating bean with name
>> 'encryptedUtIssueDelegate' defined in URL [jndi:/localhost/fedizidpsts/**WEB-INF/cxf-encrypted-ut.xml]:
>> Cannot resolve reference to bean 'encryptedUtService' while setting bean
>> property 'services'; nested exception is org.springframework.beans.**factory.BeanCreationException:
>> Error creating bean with name 'encryptedUtService' defined in URL
>> [jndi:/localhost/fedizidpsts/**WEB-INF/cxf-encrypted-ut.xml]: Error
>> setting property values; nested exception is org.springframework.beans.**NotWritablePropertyException:
>> Invalid property 'encryptionName' of bean class [org.apache.cxf.sts.service.
>> **StaticService]: Bean property 'encryptionName' is not writable or has
>> an invalid setter method. Does the parameter type of the setter match the
>> return type of the getter?
>>
>> org.springframework.beans.**factory.support.**
>> BeanDefinitionValueResolver.**resolveReference(**
>> BeanDefinitionValueResolver.**java:328)
>>
>> org.springframework.beans.**factory.support.**
>> BeanDefinitionValueResolver.**resolveValueIfNecessary(**
>> BeanDefinitionValueResolver.**java:106)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.applyPropertyValues(**
>> AbstractAutowireCapableBeanFac**tory.java:1327)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.populateBean(**
>> AbstractAutowireCapableBeanFac**tory.java:1085)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.doCreateBean(**
>> AbstractAutowireCapableBeanFac**tory.java:516)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.createBean(**
>> AbstractAutowireCapableBeanFac**tory.java:455)
>>
>> org.springframework.beans.**factory.support.**AbstractBeanFactory$1.**
>> getObject(AbstractBeanFactory.**java:293)
>>
>> org.springframework.beans.**factory.support.**
>> DefaultSingletonBeanRegistry.**getSingleton(**
>> DefaultSingletonBeanRegistry.**java:222)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractBeanFactory.doGetBean(**AbstractBeanFactory.java:290)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractBeanFactory.getBean(**AbstractBeanFactory.java:192)
>>
>> org.springframework.beans.**factory.support.**DefaultListableBeanFactory.
>> **preInstantiateSingletons(**DefaultListableBeanFactory.**java:585)
>>
>> org.springframework.context.**support.**AbstractApplicationContext.**
>> finishBeanFactoryInitializatio**n(AbstractApplicationContext.**java:895)
>>
>> org.springframework.context.**support.**AbstractApplicationContext.**
>> refresh(**AbstractApplicationContext.**java:425)
>>
>> org.apache.cxf.transport.**servlet.CXFServlet.**createSpringContext(**
>> CXFServlet.java:146)
>>
>> org.apache.cxf.transport.**servlet.CXFServlet.loadBus(**
>> CXFServlet.java:72)
>>
>> org.apache.cxf.transport.**servlet.CXFNonSpringServlet.**
>> init(CXFNonSpringServlet.java:**67)
>>
>> org.apache.catalina.**authenticator.**AuthenticatorBase.invoke(**
>> AuthenticatorBase.java:472)
>>
>> org.apache.catalina.valves.**ErrorReportValve.invoke(**
>> ErrorReportValve.java:98)
>>
>> org.apache.catalina.valves.**AccessLogValve.invoke(**
>> AccessLogValve.java:927)
>>
>> org.apache.catalina.connector.**CoyoteAdapter.service(**
>> CoyoteAdapter.java:407)
>>
>> org.apache.coyote.http11.**AbstractHttp11Processor.**process(**
>> AbstractHttp11Processor.java:**999)
>>
>> org.apache.coyote.**AbstractProtocol$**AbstractConnectionHandler.**
>> process(AbstractProtocol.java:**565)
>>
>> org.apache.tomcat.util.net.**JIoEndpoint$SocketProcessor.**
>> run(JIoEndpoint.java:307)
>>
>> java.util.concurrent.**ThreadPoolExecutor$Worker.**
>> runTask(ThreadPoolExecutor.**java:886)
>>
>> java.util.concurrent.**ThreadPoolExecutor$Worker.run(**
>> ThreadPoolExecutor.java:908)
>>
>> java.lang.Thread.run(Thread.**java:662)
>>
>> *root cause*
>>
>>
>> org.springframework.beans.**factory.BeanCreationException: Error
>> creating bean with name 'encryptedUtIssueDelegate' defined in URL
>> [jndi:/localhost/fedizidpsts/**WEB-INF/cxf-encrypted-ut.xml]: Cannot
>> resolve reference to bean 'encryptedUtService' while setting bean property
>> 'services'; nested exception is org.springframework.beans.**factory.BeanCreationException:
>> Error creating bean with name 'encryptedUtService' defined in URL
>> [jndi:/localhost/fedizidpsts/**WEB-INF/cxf-encrypted-ut.xml]: Error
>> setting property values; nested exception is org.springframework.beans.**NotWritablePropertyException:
>> Invalid property 'encryptionName' of bean class [org.apache.cxf.sts.service.
>> **StaticService]: Bean property 'encryptionName' is not writable or has
>> an invalid setter method. Does the parameter type of the setter match the
>> return type of the getter?
>>
>> org.springframework.beans.**factory.support.**
>> BeanDefinitionValueResolver.**resolveReference(**
>> BeanDefinitionValueResolver.**java:328)
>>
>> org.springframework.beans.**factory.support.**
>> BeanDefinitionValueResolver.**resolveValueIfNecessary(**
>> BeanDefinitionValueResolver.**java:106)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.applyPropertyValues(**
>> AbstractAutowireCapableBeanFac**tory.java:1327)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.populateBean(**
>> AbstractAutowireCapableBeanFac**tory.java:1085)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.doCreateBean(**
>> AbstractAutowireCapableBeanFac**tory.java:516)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.createBean(**
>> AbstractAutowireCapableBeanFac**tory.java:455)
>>
>> org.springframework.beans.**factory.support.**AbstractBeanFactory$1.**
>> getObject(AbstractBeanFactory.**java:293)
>>
>> org.springframework.beans.**factory.support.**
>> DefaultSingletonBeanRegistry.**getSingleton(**
>> DefaultSingletonBeanRegistry.**java:222)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractBeanFactory.doGetBean(**AbstractBeanFactory.java:290)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractBeanFactory.getBean(**AbstractBeanFactory.java:192)
>>
>> org.springframework.beans.**factory.support.**
>> BeanDefinitionValueResolver.**resolveReference(**
>> BeanDefinitionValueResolver.**java:322)
>>
>> org.springframework.beans.**factory.support.**
>> BeanDefinitionValueResolver.**resolveValueIfNecessary(**
>> BeanDefinitionValueResolver.**java:106)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.applyPropertyValues(**
>> AbstractAutowireCapableBeanFac**tory.java:1327)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.populateBean(**
>> AbstractAutowireCapableBeanFac**tory.java:1085)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.doCreateBean(**
>> AbstractAutowireCapableBeanFac**tory.java:516)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.createBean(**
>> AbstractAutowireCapableBeanFac**tory.java:455)
>>
>> org.springframework.beans.**factory.support.**AbstractBeanFactory$1.**
>> getObject(AbstractBeanFactory.**java:293)
>>
>> org.springframework.beans.**factory.support.**
>> DefaultSingletonBeanRegistry.**getSingleton(**
>> DefaultSingletonBeanRegistry.**java:222)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractBeanFactory.doGetBean(**AbstractBeanFactory.java:290)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractBeanFactory.getBean(**AbstractBeanFactory.java:192)
>>
>> org.springframework.beans.**factory.support.**DefaultListableBeanFactory.
>> **preInstantiateSingletons(**DefaultListableBeanFactory.**java:585)
>>
>> org.springframework.context.**support.**AbstractApplicationContext.**
>> finishBeanFactoryInitializatio**n(AbstractApplicationContext.**java:895)
>>
>> org.springframework.context.**support.**AbstractApplicationContext.**
>> refresh(**AbstractApplicationContext.**java:425)
>>
>> org.apache.cxf.transport.**servlet.CXFServlet.**createSpringContext(**
>> CXFServlet.java:146)
>>
>> org.apache.cxf.transport.**servlet.CXFServlet.loadBus(**
>> CXFServlet.java:72)
>>
>> org.apache.cxf.transport.**servlet.CXFNonSpringServlet.**
>> init(CXFNonSpringServlet.java:**67)
>>
>> org.apache.catalina.**authenticator.**AuthenticatorBase.invoke(**
>> AuthenticatorBase.java:472)
>>
>> org.apache.catalina.valves.**ErrorReportValve.invoke(**
>> ErrorReportValve.java:98)
>>
>> org.apache.catalina.valves.**AccessLogValve.invoke(**
>> AccessLogValve.java:927)
>>
>> org.apache.catalina.connector.**CoyoteAdapter.service(**
>> CoyoteAdapter.java:407)
>>
>> org.apache.coyote.http11.**AbstractHttp11Processor.**process(**
>> AbstractHttp11Processor.java:**999)
>>
>> org.apache.coyote.**AbstractProtocol$**AbstractConnectionHandler.**
>> process(AbstractProtocol.java:**565)
>>
>> org.apache.tomcat.util.net.**JIoEndpoint$SocketProcessor.**
>> run(JIoEndpoint.java:307)
>>
>> java.util.concurrent.**ThreadPoolExecutor$Worker.**
>> runTask(ThreadPoolExecutor.**java:886)
>>
>> java.util.concurrent.**ThreadPoolExecutor$Worker.run(**
>> ThreadPoolExecutor.java:908)
>>
>> java.lang.Thread.run(Thread.**java:662)
>>
>> *root cause*
>>
>>
>> org.springframework.beans.**factory.BeanCreationException: Error
>> creating bean with name 'encryptedUtService' defined in URL
>> [jndi:/localhost/fedizidpsts/**WEB-INF/cxf-encrypted-ut.xml]: Error
>> setting property values; nested exception is org.springframework.beans.**NotWritablePropertyException:
>> Invalid property 'encryptionName' of bean class [org.apache.cxf.sts.service.
>> **StaticService]: Bean property 'encryptionName' is not writable or has
>> an invalid setter method. Does the parameter type of the setter match the
>> return type of the getter?
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.applyPropertyValues(**
>> AbstractAutowireCapableBeanFac**tory.java:1363)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.populateBean(**
>> AbstractAutowireCapableBeanFac**tory.java:1085)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.doCreateBean(**
>> AbstractAutowireCapableBeanFac**tory.java:516)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.createBean(**
>> AbstractAutowireCapableBeanFac**tory.java:455)
>>
>> org.springframework.beans.**factory.support.**AbstractBeanFactory$1.**
>> getObject(AbstractBeanFactory.**java:293)
>>
>> org.springframework.beans.**factory.support.**
>> DefaultSingletonBeanRegistry.**getSingleton(**
>> DefaultSingletonBeanRegistry.**java:222)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractBeanFactory.doGetBean(**AbstractBeanFactory.java:290)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractBeanFactory.getBean(**AbstractBeanFactory.java:192)
>>
>> org.springframework.beans.**factory.support.**
>> BeanDefinitionValueResolver.**resolveReference(**
>> BeanDefinitionValueResolver.**java:322)
>>
>> org.springframework.beans.**factory.support.**
>> BeanDefinitionValueResolver.**resolveValueIfNecessary(**
>> BeanDefinitionValueResolver.**java:106)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.applyPropertyValues(**
>> AbstractAutowireCapableBeanFac**tory.java:1327)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.populateBean(**
>> AbstractAutowireCapableBeanFac**tory.java:1085)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.doCreateBean(**
>> AbstractAutowireCapableBeanFac**tory.java:516)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.createBean(**
>> AbstractAutowireCapableBeanFac**tory.java:455)
>>
>> org.springframework.beans.**factory.support.**AbstractBeanFactory$1.**
>> getObject(AbstractBeanFactory.**java:293)
>>
>> org.springframework.beans.**factory.support.**
>> DefaultSingletonBeanRegistry.**getSingleton(**
>> DefaultSingletonBeanRegistry.**java:222)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractBeanFactory.doGetBean(**AbstractBeanFactory.java:290)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractBeanFactory.getBean(**AbstractBeanFactory.java:192)
>>
>> org.springframework.beans.**factory.support.**
>> BeanDefinitionValueResolver.**resolveReference(**
>> BeanDefinitionValueResolver.**java:322)
>>
>> org.springframework.beans.**factory.support.**
>> BeanDefinitionValueResolver.**resolveValueIfNecessary(**
>> BeanDefinitionValueResolver.**java:106)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.applyPropertyValues(**
>> AbstractAutowireCapableBeanFac**tory.java:1327)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.populateBean(**
>> AbstractAutowireCapableBeanFac**tory.java:1085)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.doCreateBean(**
>> AbstractAutowireCapableBeanFac**tory.java:516)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.createBean(**
>> AbstractAutowireCapableBeanFac**tory.java:455)
>>
>> org.springframework.beans.**factory.support.**AbstractBeanFactory$1.**
>> getObject(AbstractBeanFactory.**java:293)
>>
>> org.springframework.beans.**factory.support.**
>> DefaultSingletonBeanRegistry.**getSingleton(**
>> DefaultSingletonBeanRegistry.**java:222)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractBeanFactory.doGetBean(**AbstractBeanFactory.java:290)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractBeanFactory.getBean(**AbstractBeanFactory.java:192)
>>
>> org.springframework.beans.**factory.support.**DefaultListableBeanFactory.
>> **preInstantiateSingletons(**DefaultListableBeanFactory.**java:585)
>>
>> org.springframework.context.**support.**AbstractApplicationContext.**
>> finishBeanFactoryInitializatio**n(AbstractApplicationContext.**java:895)
>>
>> org.springframework.context.**support.**AbstractApplicationContext.**
>> refresh(**AbstractApplicationContext.**java:425)
>>
>> org.apache.cxf.transport.**servlet.CXFServlet.**createSpringContext(**
>> CXFServlet.java:146)
>>
>> org.apache.cxf.transport.**servlet.CXFServlet.loadBus(**
>> CXFServlet.java:72)
>>
>> org.apache.cxf.transport.**servlet.CXFNonSpringServlet.**
>> init(CXFNonSpringServlet.java:**67)
>>
>> org.apache.catalina.**authenticator.**AuthenticatorBase.invoke(**
>> AuthenticatorBase.java:472)
>>
>> org.apache.catalina.valves.**ErrorReportValve.invoke(**
>> ErrorReportValve.java:98)
>>
>> org.apache.catalina.valves.**AccessLogValve.invoke(**
>> AccessLogValve.java:927)
>>
>> org.apache.catalina.connector.**CoyoteAdapter.service(**
>> CoyoteAdapter.java:407)
>>
>> org.apache.coyote.http11.**AbstractHttp11Processor.**process(**
>> AbstractHttp11Processor.java:**999)
>>
>> org.apache.coyote.**AbstractProtocol$**AbstractConnectionHandler.**
>> process(AbstractProtocol.java:**565)
>>
>> org.apache.tomcat.util.net.**JIoEndpoint$SocketProcessor.**
>> run(JIoEndpoint.java:307)
>>
>> java.util.concurrent.**ThreadPoolExecutor$Worker.**
>> runTask(ThreadPoolExecutor.**java:886)
>>
>> java.util.concurrent.**ThreadPoolExecutor$Worker.run(**
>> ThreadPoolExecutor.java:908)
>>
>> java.lang.Thread.run(Thread.**java:662)
>>
>> *root cause*
>>
>>
>> org.springframework.beans.**NotWritablePropertyException: Invalid
>> property 'encryptionName' of bean class [org.apache.cxf.sts.service.**StaticService]:
>> Bean property 'encryptionName' is not writable or has an invalid setter
>> method. Does the parameter type of the setter match the return type of the
>> getter?
>>
>> org.springframework.beans.**BeanWrapperImpl.**setPropertyValue(**
>> BeanWrapperImpl.java:1052)
>>
>> org.springframework.beans.**BeanWrapperImpl.**setPropertyValue(**
>> BeanWrapperImpl.java:921)
>>
>> org.springframework.beans.**AbstractPropertyAccessor.**setPropertyValues(
>> **AbstractPropertyAccessor.java:**76)
>>
>> org.springframework.beans.**AbstractPropertyAccessor.**setPropertyValues(
>> **AbstractPropertyAccessor.java:**58)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.applyPropertyValues(**
>> AbstractAutowireCapableBeanFac**tory.java:1360)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.populateBean(**
>> AbstractAutowireCapableBeanFac**tory.java:1085)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.doCreateBean(**
>> AbstractAutowireCapableBeanFac**tory.java:516)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.createBean(**
>> AbstractAutowireCapableBeanFac**tory.java:455)
>>
>> org.springframework.beans.**factory.support.**AbstractBeanFactory$1.**
>> getObject(AbstractBeanFactory.**java:293)
>>
>> org.springframework.beans.**factory.support.**
>> DefaultSingletonBeanRegistry.**getSingleton(**
>> DefaultSingletonBeanRegistry.**java:222)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractBeanFactory.doGetBean(**AbstractBeanFactory.java:290)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractBeanFactory.getBean(**AbstractBeanFactory.java:192)
>>
>> org.springframework.beans.**factory.support.**
>> BeanDefinitionValueResolver.**resolveReference(**
>> BeanDefinitionValueResolver.**java:322)
>>
>> org.springframework.beans.**factory.support.**
>> BeanDefinitionValueResolver.**resolveValueIfNecessary(**
>> BeanDefinitionValueResolver.**java:106)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.applyPropertyValues(**
>> AbstractAutowireCapableBeanFac**tory.java:1327)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.populateBean(**
>> AbstractAutowireCapableBeanFac**tory.java:1085)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.doCreateBean(**
>> AbstractAutowireCapableBeanFac**tory.java:516)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.createBean(**
>> AbstractAutowireCapableBeanFac**tory.java:455)
>>
>> org.springframework.beans.**factory.support.**AbstractBeanFactory$1.**
>> getObject(AbstractBeanFactory.**java:293)
>>
>> org.springframework.beans.**factory.support.**
>> DefaultSingletonBeanRegistry.**getSingleton(**
>> DefaultSingletonBeanRegistry.**java:222)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractBeanFactory.doGetBean(**AbstractBeanFactory.java:290)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractBeanFactory.getBean(**AbstractBeanFactory.java:192)
>>
>> org.springframework.beans.**factory.support.**
>> BeanDefinitionValueResolver.**resolveReference(**
>> BeanDefinitionValueResolver.**java:322)
>>
>> org.springframework.beans.**factory.support.**
>> BeanDefinitionValueResolver.**resolveValueIfNecessary(**
>> BeanDefinitionValueResolver.**java:106)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.applyPropertyValues(**
>> AbstractAutowireCapableBeanFac**tory.java:1327)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.populateBean(**
>> AbstractAutowireCapableBeanFac**tory.java:1085)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.doCreateBean(**
>> AbstractAutowireCapableBeanFac**tory.java:516)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractAutowireCapableBeanFac**tory.createBean(**
>> AbstractAutowireCapableBeanFac**tory.java:455)
>>
>> org.springframework.beans.**factory.support.**AbstractBeanFactory$1.**
>> getObject(AbstractBeanFactory.**java:293)
>>
>> org.springframework.beans.**factory.support.**
>> DefaultSingletonBeanRegistry.**getSingleton(**
>> DefaultSingletonBeanRegistry.**java:222)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractBeanFactory.doGetBean(**AbstractBeanFactory.java:290)
>>
>> org.springframework.beans.**factory.support.**
>> AbstractBeanFactory.getBean(**AbstractBeanFactory.java:192)
>>
>> org.springframework.beans.**factory.support.**DefaultListableBeanFactory.
>> **preInstantiateSingletons(**DefaultListableBeanFactory.**java:585)
>>
>> org.springframework.context.**support.**AbstractApplicationContext.**
>> finishBeanFactoryInitializatio**n(AbstractApplicationContext.**java:895)
>>
>> org.springframework.context.**support.**AbstractApplicationContext.**
>> refresh(**AbstractApplicationContext.**java:425)
>>
>> org.apache.cxf.transport.**servlet.CXFServlet.**createSpringContext(**
>> CXFServlet.java:146)
>>
>> org.apache.cxf.transport.**servlet.CXFServlet.loadBus(**
>> CXFServlet.java:72)
>>
>> org.apache.cxf.transport.**servlet.CXFNonSpringServlet.**
>> init(CXFNonSpringServlet.java:**67)
>>
>> org.apache.catalina.**authenticator.**AuthenticatorBase.invoke(**
>> AuthenticatorBase.java:472)
>>
>> org.apache.catalina.valves.**ErrorReportValve.invoke(**
>> ErrorReportValve.java:98)
>>
>> org.apache.catalina.valves.**AccessLogValve.invoke(**
>> AccessLogValve.java:927)
>>
>> org.apache.catalina.connector.**CoyoteAdapter.service(**
>> CoyoteAdapter.java:407)
>>
>> org.apache.coyote.http11.**AbstractHttp11Processor.**process(**
>> AbstractHttp11Processor.java:**999)
>>
>> org.apache.coyote.**AbstractProtocol$**AbstractConnectionHandler.**
>> process(AbstractProtocol.java:**565)
>>
>> org.apache.tomcat.util.net.**JIoEndpoint$SocketProcessor.**
>> run(JIoEndpoint.java:307)
>>
>> java.util.concurrent.**ThreadPoolExecutor$Worker.**
>> runTask(ThreadPoolExecutor.**java:886)
>>
>> java.util.concurrent.**ThreadPoolExecutor$Worker.run(**
>> ThreadPoolExecutor.java:908)
>>
>> java.lang.Thread.run(Thread.**java:662)
>>
>>
>>
>> On Mon, Jul 9, 2012 at 2:00 PM, Glen Mazza <gmazza@talend.com <mailto:
>> gmazza@talend.com>> wrote:
>>
>> Yes, the http://localhost:8080/jaxws-**sts/sts<http://localhost:8080/jaxws-sts/sts>addresses are dummy
>> addresses, you'll see the actual ones once you deploy the STS.
>> Only a SOAP client relies on the soap:address location fields
>> (and for those it must be accurate), for web service endpoints
>> they use an algorithm as described in Note #2 here:
>> http://www.jroller.com/gmazza/**entry/web_service_tutorial#**notes<http://www.jroller.com/gmazza/entry/web_service_tutorial#notes>
>> .
>>
>> My browser returned similar (but not identical) results:
>>
>>
>> <wsdl:service name="SecurityTokenService">
>> <wsdl:port binding="wstrust:X509_Binding"**name="X509_Port">
>> <soap:address location="http://localhost:**8080/jaxws-sts/sts<http://localhost:8080/jaxws-sts/sts>
>> "/>
>> </wsdl:port>
>> <wsdl:port
>> binding="wstrust:TransportUT_**Binding"name="TransportUT_**Port">
>> <soap:address
>> location="https://localhost:**9443/fedizidpsts/STSService<https://localhost:9443/fedizidpsts/STSService>
>> "/>
>>
>> </wsdl:port>
>> <wsdl:port
>> binding="wstrust:**TransportKerberos_Binding"**
>> name="TransportKerberos_Port">
>> <soap:address location="http://localhost:**8080/jaxws-sts/sts<http://localhost:8080/jaxws-sts/sts>
>> "/>
>> </wsdl:port>
>> <wsdl:port
>> binding="wstrust:UTEncrypted_**Binding"name="UTEncrypted_**Port">
>> <soap:address location="http://localhost:**8080/jaxws-sts/sts<http://localhost:8080/jaxws-sts/sts>
>> "/>
>> </wsdl:port>
>> <wsdl:port
>> binding="wstrust:Transport_**Binding"name="Transport_Port">
>> <soap:address
>> location="https://localhost:**9443/fedizidpsts/**STSServiceTransport<https://localhost:9443/fedizidpsts/STSServiceTransport>
>> "/>
>>
>> </wsdl:port>
>> <wsdl:port binding="wstrust:UT_Binding"**name="UT_Port">
>> <soap:address location="http://localhost:**8080/jaxws-sts/sts<http://localhost:8080/jaxws-sts/sts>
>> "/>
>> </wsdl:port>
>> </wsdl:service>
>>
>>
>> Offhand, I would say the problem is in the Fediz STS
>> configuration, it shouldn't need to have six ports open (one
>> should be sufficient). How do you want to authenticate against
>> the IDP STS? That will determine which port needs configuration
>> and which ports should be deleted from your WSDL.
>>
>> Regards,
>> Glen
>>
>>
>> On 07/09/2012 01:16 PM, Gina Choi wrote:
>>
>> I just browsed my CXF-Fediz wsdl file, I am seeing following.
>> Both
>> TransportUT_Port and Transport_Port soap address look valid. I
>> need to have
>> valid soap address for UTEncrypted_Port and UT_Por. I must
>> missing some
>> additional configuration.
>>
>> <wsdl:service name="SecurityTokenService">
>> <wsdl:port binding="wstrust:X509_Binding" name="X509_Port">
>> <soap:address location="
>> http://wkqasv0805.global.sdl.**corp:8080/jaxws-sts/sts<http://wkqasv0805.global.sdl.corp:8080/jaxws-sts/sts>
>> "/>
>> </wsdl:port>
>> <wsdl:port binding="wstrust:TransportUT_**Binding"
>> name="TransportUT_Port">
>> <soap:address location="
>> http://wkqasv0805.global.sdl.**corp:9080/fedizidpsts/**STSService<http://wkqasv0805.global.sdl.corp:9080/fedizidpsts/STSService>
>> "/>
>> </wsdl:port>
>> <wsdl:port binding="wstrust:**TransportKerberos_Binding"
>> name="TransportKerberos_Port">
>> <soap:address location="
>> http://wkqasv0805.global.sdl.**corp:8080/jaxws-sts/sts<http://wkqasv0805.global.sdl.corp:8080/jaxws-sts/sts>
>> "/>
>> </wsdl:port>
>> <wsdl:port binding="wstrust:UTEncrypted_**Binding"
>> name="UTEncrypted_Port">
>> <soap:address location="
>> http://wkqasv0805.global.sdl.**corp:8080/jaxws-sts/sts<http://wkqasv0805.global.sdl.corp:8080/jaxws-sts/sts>
>> "/>
>> </wsdl:port>
>> <wsdl:port binding="wstrust:Transport_**Binding"
>> name="Transport_Port">
>> <soap:address location="/**STSServiceTransport"/>
>> </wsdl:port>
>> <wsdl:port binding="wstrust:UT_Binding" name="UT_Port">
>> <soap:address location="
>> http://wkqasv0805.global.sdl.**corp:8080/jaxws-sts/sts<http://wkqasv0805.global.sdl.corp:8080/jaxws-sts/sts>
>> "/>
>> </wsdl:port>
>> </wsdl:service>
>>
>> On Mon, Jul 9, 2012 at 12:58 PM, Gina Choi
>> <ginachoi88@gmail.com <ma...@gmail.com>> wrote:
>>
>> Hi all,
>>
>>
>> We try to integrate .NET application for SSO+Web security
>> using CXF-Fediz
>> STS. Passive profile worked well without any problem. Now
>> we try to call
>> cxf-encrypted-ut.xml endpoint using actas and we need a
>> soap address for
>> this endpoint. If we look at ADFS2.0 wsdl file, I have
>> following part.
>>
>> <wsdl:service name="SecurityTokenService">
>> <wsdl:port name="UserNameWSTrustBinding_**
>> IWSTrust13Async2"
>> binding="tns:**UserNameWSTrustBinding_**IWSTrust13Async2">
>> <soap12:address location="
>> https://strts01.ams.dev/adfs/**services/trust/13/**
>> usernamemixed<https://strts01.ams.dev/adfs/services/trust/13/usernamemixed>
>> "
>> />
>> <wsa10:EndpointReference>
>> <wsa10:Address>
>> https://strts01.ams.dev/adfs/**services/trust/13/**
>> usernamemixed<https://strts01.ams.dev/adfs/services/trust/13/usernamemixed>
>> </wsa10:Address>
>> </wsa10:EndpointReference>
>> </wsdl:port>
>> </wsdl:service>
>>
>> I am looking for corresponding end point soap address(
>> https://strts01.ams.dev/adfs/**services/trust/13/**
>> usernamemixed<https://strts01.ams.dev/adfs/services/trust/13/usernamemixed>
>> )
>> from
>> CXF-Fediz STS. If I look at ws-trust-1.4-service.wsdl
>> file, we have
>> following. Soap address for each ports are the same. How
>> do we identify
>> soap addresses? Do we need additional configuration? By
>> the way, I
>> currently I have CXF-Fediz STS + OpenLDAP environment.
>>
>> <wsdl:service name="SecurityTokenService">
>> <wsdl:port name="UT_Port" binding="tns:UT_Binding">
>> <soap:address
>> location="http://localhost:**8080/jaxws-sts/sts<http://localhost:8080/jaxws-sts/sts>"
>> />
>> </wsdl:port>
>> <wsdl:port name="X509_Port" binding="tns:X509_Binding">
>> <soap:address
>> location="http://localhost:**8080/jaxws-sts/sts<http://localhost:8080/jaxws-sts/sts>"
>> />
>> </wsdl:port>
>> <wsdl:port name="Transport_Port"
>> binding="tns:Transport_**Binding">
>> <soap:address
>> location="http://localhost:**8080/jaxws-sts/sts<http://localhost:8080/jaxws-sts/sts>"
>> />
>> </wsdl:port>
>> <wsdl:port name="UTEncrypted_Port"
>> binding="tns:UTEncrypted_**Binding">
>> <soap:address
>> location="http://localhost:**8080/jaxws-sts/sts<http://localhost:8080/jaxws-sts/sts>"
>> />
>> </wsdl:port>
>> <wsdl:port name="TransportUT_Port"
>> binding="tns:TransportUT_**Binding">
>> <soap:address
>> location="http://localhost:**8080/jaxws-sts/sts<http://localhost:8080/jaxws-sts/sts>"
>> />
>> </wsdl:port>
>> <wsdl:port name="TransportKerberos_Port"
>> binding="tns:**TransportKerberos_Binding">
>> <soap:address location="
>> http://wkengchoi.global.sdl.**corp:8080/jaxws-sts/sts<http://wkengchoi.global.sdl.corp:8080/jaxws-sts/sts>"
>> />
>> </wsdl:port>
>> </wsdl:service>
>>
>> Thanks.
>>
>> Gina
>>
>>
>>
>> -- Glen Mazza
>> Talend Community Coders
>> coders.talend.com <http://coders.talend.com>
>> blog: www.jroller.com/gmazza <http://www.jroller.com/gmazza**>
>>
>>
>>
>
> --
> Glen Mazza
> Talend Community Coders
> coders.talend.com
> blog:www.jroller.com/gmazza
>
>
Re: Soap address for Apache CXF-Fediz STS active end points
Posted by Glen Mazza <gm...@talend.com>.
OK, I stand corrected then, having multiple endpoints open is necessary
in many cases. I'm unsure whether Fediz, or the CXF STS itself for that
matter, has all possibilities as given in the WSDL presently implemented
and available--Fediz is still quite new of course, and the fact that the
some endpoints are commented out might indicate they're not ready yet.
This is more of an Oli (possibly Colm) question.
Glen
On 07/10/2012 09:07 AM, Gina Choi wrote:
> Hi Glen,
>
> As always, thanks for your response and nice tutorials.
>
> I might had misunderstanding about Fediz STS. I expect that Fediz STS
> provides passive profile(SSO) and active profile with several end
> points. ADFS has around 37 endpoints available and depends on needs,
> we can turn off most of them, leave 5 or 6 on. This is because
> applications integrated using SSO requires different end point for
> their web services. For our case, when we call from .NET, we used
> windowsmixed, but when we call from Java, we used usernamixed and both
> endpoints are available same time.
>
> Currently I have both Transport_Port and TransportUT_Port are
> available and these two are needed to support passive profile if I
> understand correct. On top of these, I need UTEncrypted_Port at least,
> so that soap client is authenticated by Fediz IDP STS using encrypted
> username token. X509_Port is very useful as well. Under my
> tomcat-idp\webapps\fedizidpsts\WEB-INF directory, I have
> cxf-encrypted-ut.xml, cxf-transport.xml, cxf-x509.xml, cxf-ut.xml and
> cxf-servlet.xml. So, I should able to turn on cxf-encrypted-ut. I have
> following content Inside cxf-servlet.xml. So by default, except
> cxf-transport.xml, everything else are commented out.
>
> <import resource="cxf-transport.xml"/>
> <!--
> <import resource="cxf-ut.xml"/>
> <import resource="cxf-encrypted-ut.xml"/>
> <import resource="cxf-x509.xml"/>
> -->
>
> If I uncomment any of them, I am getting following exception. In this
> case, I uncommented cxf-encrypted-ut.xml. Perhaps if I configured
> something incorrectly?
>
> org.springframework.beans.factory.BeanCreationException: Error
> creating bean with name 'encryptedUtSTSProviderBean' defined in URL
> [jndi:/localhost/fedizidpsts/WEB-INF/cxf-encrypted-ut.xml]: Cannot
> resolve reference to bean 'encryptedUtIssueDelegate' while setting
> bean property 'issueOperation'; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error
> creating bean with name 'encryptedUtIssueDelegate' defined in URL
> [jndi:/localhost/fedizidpsts/WEB-INF/cxf-encrypted-ut.xml]: Cannot
> resolve reference to bean 'encryptedUtService' while setting bean
> property 'services'; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error
> creating bean with name 'encryptedUtService' defined in URL
> [jndi:/localhost/fedizidpsts/WEB-INF/cxf-encrypted-ut.xml]: Error
> setting property values; nested exception is
> org.springframework.beans.NotWritablePropertyException: Invalid
> property 'encryptionName' of bean class
> [org.apache.cxf.sts.service.StaticService]: Bean property
> 'encryptionName' is not writable or has an invalid setter method. Does
> the parameter type of the setter match the return type of the getter?
>
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
>
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1327)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1085)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:516)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
>
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
>
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
>
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
>
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
>
> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
>
> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
>
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
>
> org.apache.cxf.transport.servlet.CXFServlet.createSpringContext(CXFServlet.java:146)
>
> org.apache.cxf.transport.servlet.CXFServlet.loadBus(CXFServlet.java:72)
>
> org.apache.cxf.transport.servlet.CXFNonSpringServlet.init(CXFNonSpringServlet.java:67)
>
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
>
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
>
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
>
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
>
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
>
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
>
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>
> java.lang.Thread.run(Thread.java:662)
>
> *root cause*
>
> org.springframework.beans.factory.BeanCreationException: Error
> creating bean with name 'encryptedUtIssueDelegate' defined in URL
> [jndi:/localhost/fedizidpsts/WEB-INF/cxf-encrypted-ut.xml]: Cannot
> resolve reference to bean 'encryptedUtService' while setting bean
> property 'services'; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error
> creating bean with name 'encryptedUtService' defined in URL
> [jndi:/localhost/fedizidpsts/WEB-INF/cxf-encrypted-ut.xml]: Error
> setting property values; nested exception is
> org.springframework.beans.NotWritablePropertyException: Invalid
> property 'encryptionName' of bean class
> [org.apache.cxf.sts.service.StaticService]: Bean property
> 'encryptionName' is not writable or has an invalid setter method. Does
> the parameter type of the setter match the return type of the getter?
>
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
>
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1327)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1085)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:516)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
>
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
>
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
>
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
>
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
>
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
>
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1327)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1085)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:516)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
>
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
>
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
>
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
>
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
>
> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
>
> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
>
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
>
> org.apache.cxf.transport.servlet.CXFServlet.createSpringContext(CXFServlet.java:146)
>
> org.apache.cxf.transport.servlet.CXFServlet.loadBus(CXFServlet.java:72)
>
> org.apache.cxf.transport.servlet.CXFNonSpringServlet.init(CXFNonSpringServlet.java:67)
>
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
>
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
>
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
>
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
>
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
>
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
>
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>
> java.lang.Thread.run(Thread.java:662)
>
> *root cause*
>
> org.springframework.beans.factory.BeanCreationException: Error
> creating bean with name 'encryptedUtService' defined in URL
> [jndi:/localhost/fedizidpsts/WEB-INF/cxf-encrypted-ut.xml]: Error
> setting property values; nested exception is
> org.springframework.beans.NotWritablePropertyException: Invalid
> property 'encryptionName' of bean class
> [org.apache.cxf.sts.service.StaticService]: Bean property
> 'encryptionName' is not writable or has an invalid setter method. Does
> the parameter type of the setter match the return type of the getter?
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1363)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1085)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:516)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
>
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
>
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
>
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
>
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
>
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
>
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1327)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1085)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:516)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
>
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
>
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
>
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
>
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
>
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
>
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1327)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1085)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:516)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
>
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
>
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
>
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
>
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
>
> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
>
> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
>
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
>
> org.apache.cxf.transport.servlet.CXFServlet.createSpringContext(CXFServlet.java:146)
>
> org.apache.cxf.transport.servlet.CXFServlet.loadBus(CXFServlet.java:72)
>
> org.apache.cxf.transport.servlet.CXFNonSpringServlet.init(CXFNonSpringServlet.java:67)
>
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
>
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
>
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
>
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
>
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
>
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
>
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>
> java.lang.Thread.run(Thread.java:662)
>
> *root cause*
>
> org.springframework.beans.NotWritablePropertyException: Invalid
> property 'encryptionName' of bean class
> [org.apache.cxf.sts.service.StaticService]: Bean property
> 'encryptionName' is not writable or has an invalid setter method. Does
> the parameter type of the setter match the return type of the getter?
>
> org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:1052)
>
> org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:921)
>
> org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:76)
>
> org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:58)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1360)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1085)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:516)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
>
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
>
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
>
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
>
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
>
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
>
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1327)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1085)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:516)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
>
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
>
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
>
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
>
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
>
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
>
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1327)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1085)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:516)
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
>
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
>
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
>
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
>
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
>
> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
>
> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
>
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
>
> org.apache.cxf.transport.servlet.CXFServlet.createSpringContext(CXFServlet.java:146)
>
> org.apache.cxf.transport.servlet.CXFServlet.loadBus(CXFServlet.java:72)
>
> org.apache.cxf.transport.servlet.CXFNonSpringServlet.init(CXFNonSpringServlet.java:67)
>
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
>
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
>
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
>
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
>
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
>
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
>
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>
> java.lang.Thread.run(Thread.java:662)
>
>
>
> On Mon, Jul 9, 2012 at 2:00 PM, Glen Mazza <gmazza@talend.com
> <ma...@talend.com>> wrote:
>
> Yes, the http://localhost:8080/jaxws-sts/sts addresses are dummy
> addresses, you'll see the actual ones once you deploy the STS.
> Only a SOAP client relies on the soap:address location fields
> (and for those it must be accurate), for web service endpoints
> they use an algorithm as described in Note #2 here:
> http://www.jroller.com/gmazza/entry/web_service_tutorial#notes.
>
> My browser returned similar (but not identical) results:
>
>
> <wsdl:service name="SecurityTokenService">
> <wsdl:port binding="wstrust:X509_Binding"name="X509_Port">
> <soap:address location="http://localhost:8080/jaxws-sts/sts"/>
> </wsdl:port>
> <wsdl:port
> binding="wstrust:TransportUT_Binding"name="TransportUT_Port">
> <soap:address
> location="https://localhost:9443/fedizidpsts/STSService"/>
>
> </wsdl:port>
> <wsdl:port
> binding="wstrust:TransportKerberos_Binding"name="TransportKerberos_Port">
> <soap:address location="http://localhost:8080/jaxws-sts/sts"/>
> </wsdl:port>
> <wsdl:port
> binding="wstrust:UTEncrypted_Binding"name="UTEncrypted_Port">
> <soap:address location="http://localhost:8080/jaxws-sts/sts"/>
> </wsdl:port>
> <wsdl:port
> binding="wstrust:Transport_Binding"name="Transport_Port">
> <soap:address
> location="https://localhost:9443/fedizidpsts/STSServiceTransport"/>
>
> </wsdl:port>
> <wsdl:port binding="wstrust:UT_Binding"name="UT_Port">
> <soap:address location="http://localhost:8080/jaxws-sts/sts"/>
> </wsdl:port>
> </wsdl:service>
>
>
> Offhand, I would say the problem is in the Fediz STS
> configuration, it shouldn't need to have six ports open (one
> should be sufficient). How do you want to authenticate against
> the IDP STS? That will determine which port needs configuration
> and which ports should be deleted from your WSDL.
>
> Regards,
> Glen
>
>
> On 07/09/2012 01:16 PM, Gina Choi wrote:
>
> I just browsed my CXF-Fediz wsdl file, I am seeing following.
> Both
> TransportUT_Port and Transport_Port soap address look valid. I
> need to have
> valid soap address for UTEncrypted_Port and UT_Por. I must
> missing some
> additional configuration.
>
> <wsdl:service name="SecurityTokenService">
> <wsdl:port binding="wstrust:X509_Binding" name="X509_Port">
> <soap:address location="
> http://wkqasv0805.global.sdl.corp:8080/jaxws-sts/sts"/>
> </wsdl:port>
> <wsdl:port binding="wstrust:TransportUT_Binding"
> name="TransportUT_Port">
> <soap:address location="
> http://wkqasv0805.global.sdl.corp:9080/fedizidpsts/STSService"/>
> </wsdl:port>
> <wsdl:port binding="wstrust:TransportKerberos_Binding"
> name="TransportKerberos_Port">
> <soap:address location="
> http://wkqasv0805.global.sdl.corp:8080/jaxws-sts/sts"/>
> </wsdl:port>
> <wsdl:port binding="wstrust:UTEncrypted_Binding"
> name="UTEncrypted_Port">
> <soap:address location="
> http://wkqasv0805.global.sdl.corp:8080/jaxws-sts/sts"/>
> </wsdl:port>
> <wsdl:port binding="wstrust:Transport_Binding"
> name="Transport_Port">
> <soap:address location="/STSServiceTransport"/>
> </wsdl:port>
> <wsdl:port binding="wstrust:UT_Binding" name="UT_Port">
> <soap:address location="
> http://wkqasv0805.global.sdl.corp:8080/jaxws-sts/sts"/>
> </wsdl:port>
> </wsdl:service>
>
> On Mon, Jul 9, 2012 at 12:58 PM, Gina Choi
> <ginachoi88@gmail.com <ma...@gmail.com>> wrote:
>
> Hi all,
>
>
> We try to integrate .NET application for SSO+Web security
> using CXF-Fediz
> STS. Passive profile worked well without any problem. Now
> we try to call
> cxf-encrypted-ut.xml endpoint using actas and we need a
> soap address for
> this endpoint. If we look at ADFS2.0 wsdl file, I have
> following part.
>
> <wsdl:service name="SecurityTokenService">
> <wsdl:port name="UserNameWSTrustBinding_IWSTrust13Async2"
> binding="tns:UserNameWSTrustBinding_IWSTrust13Async2">
> <soap12:address location="
> https://strts01.ams.dev/adfs/services/trust/13/usernamemixed"
> />
> <wsa10:EndpointReference>
> <wsa10:Address>
> https://strts01.ams.dev/adfs/services/trust/13/usernamemixed
> </wsa10:Address>
> </wsa10:EndpointReference>
> </wsdl:port>
> </wsdl:service>
>
> I am looking for corresponding end point soap address(
> https://strts01.ams.dev/adfs/services/trust/13/usernamemixed)
> from
> CXF-Fediz STS. If I look at ws-trust-1.4-service.wsdl
> file, we have
> following. Soap address for each ports are the same. How
> do we identify
> soap addresses? Do we need additional configuration? By
> the way, I
> currently I have CXF-Fediz STS + OpenLDAP environment.
>
> <wsdl:service name="SecurityTokenService">
> <wsdl:port name="UT_Port" binding="tns:UT_Binding">
> <soap:address
> location="http://localhost:8080/jaxws-sts/sts" />
> </wsdl:port>
> <wsdl:port name="X509_Port" binding="tns:X509_Binding">
> <soap:address
> location="http://localhost:8080/jaxws-sts/sts" />
> </wsdl:port>
> <wsdl:port name="Transport_Port"
> binding="tns:Transport_Binding">
> <soap:address
> location="http://localhost:8080/jaxws-sts/sts" />
> </wsdl:port>
> <wsdl:port name="UTEncrypted_Port"
> binding="tns:UTEncrypted_Binding">
> <soap:address
> location="http://localhost:8080/jaxws-sts/sts" />
> </wsdl:port>
> <wsdl:port name="TransportUT_Port"
> binding="tns:TransportUT_Binding">
> <soap:address
> location="http://localhost:8080/jaxws-sts/sts" />
> </wsdl:port>
> <wsdl:port name="TransportKerberos_Port"
> binding="tns:TransportKerberos_Binding">
> <soap:address location="
> http://wkengchoi.global.sdl.corp:8080/jaxws-sts/sts" />
> </wsdl:port>
> </wsdl:service>
>
> Thanks.
>
> Gina
>
>
>
> --
> Glen Mazza
> Talend Community Coders
> coders.talend.com <http://coders.talend.com>
> blog: www.jroller.com/gmazza <http://www.jroller.com/gmazza>
>
>
--
Glen Mazza
Talend Community Coders
coders.talend.com
blog:www.jroller.com/gmazza
Re: Soap address for Apache CXF-Fediz STS active end points
Posted by Gina Choi <gi...@gmail.com>.
Hi Glen,
As always, thanks for your response and nice tutorials.
I might had misunderstanding about Fediz STS. I expect that Fediz STS
provides passive profile(SSO) and active profile with several end points.
ADFS has around 37 endpoints available and depends on needs, we can turn
off most of them, leave 5 or 6 on. This is because applications integrated
using SSO requires different end point for their web services. For our
case, when we call from .NET, we used windowsmixed, but when we call from
Java, we used usernamixed and both endpoints are available same time.
Currently I have both Transport_Port and TransportUT_Port are available and
these two are needed to support passive profile if I understand correct. On
top of these, I need UTEncrypted_Port at least, so that soap client is
authenticated by Fediz IDP STS using encrypted username token. X509_Port is
very useful as well. Under my tomcat-idp\webapps\fedizidpsts\WEB-INF
directory, I have cxf-encrypted-ut.xml, cxf-transport.xml, cxf-x509.xml,
cxf-ut.xml and cxf-servlet.xml. So, I should able to turn on
cxf-encrypted-ut. I have following content Inside cxf-servlet.xml. So by
default, except cxf-transport.xml, everything else are commented out.
<import resource="cxf-transport.xml"/>
<!--
<import resource="cxf-ut.xml"/>
<import resource="cxf-encrypted-ut.xml"/>
<import resource="cxf-x509.xml"/>
-->
If I uncomment any of them, I am getting following exception. In this case,
I uncommented cxf-encrypted-ut.xml. Perhaps if I configured something
incorrectly?
org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 'encryptedUtSTSProviderBean' defined in URL
[jndi:/localhost/fedizidpsts/WEB-INF/cxf-encrypted-ut.xml]: Cannot resolve
reference to bean 'encryptedUtIssueDelegate' while setting bean property
'issueOperation'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 'encryptedUtIssueDelegate' defined in URL
[jndi:/localhost/fedizidpsts/WEB-INF/cxf-encrypted-ut.xml]: Cannot resolve
reference to bean 'encryptedUtService' while setting bean property
'services'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 'encryptedUtService' defined in URL
[jndi:/localhost/fedizidpsts/WEB-INF/cxf-encrypted-ut.xml]: Error setting
property values; nested exception is
org.springframework.beans.NotWritablePropertyException: Invalid property
'encryptionName' of bean class [org.apache.cxf.sts.service.StaticService]:
Bean property 'encryptionName' is not writable or has an invalid setter
method. Does the parameter type of the setter match the return type of the
getter?
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1327)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1085)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:516)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
org.apache.cxf.transport.servlet.CXFServlet.createSpringContext(CXFServlet.java:146)
org.apache.cxf.transport.servlet.CXFServlet.loadBus(CXFServlet.java:72)
org.apache.cxf.transport.servlet.CXFNonSpringServlet.init(CXFNonSpringServlet.java:67)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:662)
*root cause*
org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 'encryptedUtIssueDelegate' defined in URL
[jndi:/localhost/fedizidpsts/WEB-INF/cxf-encrypted-ut.xml]: Cannot resolve
reference to bean 'encryptedUtService' while setting bean property
'services'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 'encryptedUtService' defined in URL
[jndi:/localhost/fedizidpsts/WEB-INF/cxf-encrypted-ut.xml]: Error setting
property values; nested exception is
org.springframework.beans.NotWritablePropertyException: Invalid property
'encryptionName' of bean class [org.apache.cxf.sts.service.StaticService]:
Bean property 'encryptionName' is not writable or has an invalid setter
method. Does the parameter type of the setter match the return type of the
getter?
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1327)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1085)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:516)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1327)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1085)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:516)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
org.apache.cxf.transport.servlet.CXFServlet.createSpringContext(CXFServlet.java:146)
org.apache.cxf.transport.servlet.CXFServlet.loadBus(CXFServlet.java:72)
org.apache.cxf.transport.servlet.CXFNonSpringServlet.init(CXFNonSpringServlet.java:67)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:662)
*root cause*
org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 'encryptedUtService' defined in URL
[jndi:/localhost/fedizidpsts/WEB-INF/cxf-encrypted-ut.xml]: Error setting
property values; nested exception is
org.springframework.beans.NotWritablePropertyException: Invalid property
'encryptionName' of bean class [org.apache.cxf.sts.service.StaticService]:
Bean property 'encryptionName' is not writable or has an invalid setter
method. Does the parameter type of the setter match the return type of the
getter?
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1363)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1085)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:516)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1327)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1085)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:516)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1327)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1085)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:516)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
org.apache.cxf.transport.servlet.CXFServlet.createSpringContext(CXFServlet.java:146)
org.apache.cxf.transport.servlet.CXFServlet.loadBus(CXFServlet.java:72)
org.apache.cxf.transport.servlet.CXFNonSpringServlet.init(CXFNonSpringServlet.java:67)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:662)
*root cause*
org.springframework.beans.NotWritablePropertyException: Invalid property
'encryptionName' of bean class [org.apache.cxf.sts.service.StaticService]:
Bean property 'encryptionName' is not writable or has an invalid setter
method. Does the parameter type of the setter match the return type of the
getter?
org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:1052)
org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:921)
org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:76)
org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:58)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1360)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1085)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:516)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1327)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1085)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:516)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1327)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1085)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:516)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
org.apache.cxf.transport.servlet.CXFServlet.createSpringContext(CXFServlet.java:146)
org.apache.cxf.transport.servlet.CXFServlet.loadBus(CXFServlet.java:72)
org.apache.cxf.transport.servlet.CXFNonSpringServlet.init(CXFNonSpringServlet.java:67)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:662)
On Mon, Jul 9, 2012 at 2:00 PM, Glen Mazza <gm...@talend.com> wrote:
> Yes, the http://localhost:8080/jaxws-**sts/sts<http://localhost:8080/jaxws-sts/sts>addresses are dummy addresses, you'll see the actual ones once you deploy
> the STS. Only a SOAP client relies on the soap:address location fields
> (and for those it must be accurate), for web service endpoints they use an
> algorithm as described in Note #2 here: http://www.jroller.com/gmazza/**
> entry/web_service_tutorial#**notes<http://www.jroller.com/gmazza/entry/web_service_tutorial#notes>
> .
>
> My browser returned similar (but not identical) results:
>
>
> <wsdl:service name="SecurityTokenService">
> <wsdl:port binding="wstrust:X509_Binding"**name="X509_Port">
> <soap:address location="http://localhost:**8080/jaxws-sts/sts<http://localhost:8080/jaxws-sts/sts>
> "/>
> </wsdl:port>
> <wsdl:port binding="wstrust:TransportUT_**Binding"name="TransportUT_*
> *Port">
> <soap:address location="https://localhost:**
> 9443/fedizidpsts/STSService<https://localhost:9443/fedizidpsts/STSService>
> "/>
>
> </wsdl:port>
> <wsdl:port binding="wstrust:**TransportKerberos_Binding"**
> name="TransportKerberos_Port">
> <soap:address location="http://localhost:**8080/jaxws-sts/sts<http://localhost:8080/jaxws-sts/sts>
> "/>
> </wsdl:port>
> <wsdl:port binding="wstrust:UTEncrypted_**Binding"name="UTEncrypted_*
> *Port">
> <soap:address location="http://localhost:**8080/jaxws-sts/sts<http://localhost:8080/jaxws-sts/sts>
> "/>
> </wsdl:port>
> <wsdl:port binding="wstrust:Transport_**
> Binding"name="Transport_Port">
> <soap:address location="https://localhost:**9443/fedizidpsts/**
> STSServiceTransport<https://localhost:9443/fedizidpsts/STSServiceTransport>
> "/>
>
> </wsdl:port>
> <wsdl:port binding="wstrust:UT_Binding"**name="UT_Port">
> <soap:address location="http://localhost:**8080/jaxws-sts/sts<http://localhost:8080/jaxws-sts/sts>
> "/>
> </wsdl:port>
> </wsdl:service>
>
>
> Offhand, I would say the problem is in the Fediz STS configuration, it
> shouldn't need to have six ports open (one should be sufficient). How do
> you want to authenticate against the IDP STS? That will determine which
> port needs configuration and which ports should be deleted from your WSDL.
>
> Regards,
> Glen
>
>
> On 07/09/2012 01:16 PM, Gina Choi wrote:
>
>> I just browsed my CXF-Fediz wsdl file, I am seeing following. Both
>> TransportUT_Port and Transport_Port soap address look valid. I need to
>> have
>> valid soap address for UTEncrypted_Port and UT_Por. I must missing some
>> additional configuration.
>>
>> <wsdl:service name="SecurityTokenService">
>> <wsdl:port binding="wstrust:X509_Binding" name="X509_Port">
>> <soap:address location="
>> http://wkqasv0805.global.sdl.**corp:8080/jaxws-sts/sts<http://wkqasv0805.global.sdl.corp:8080/jaxws-sts/sts>
>> "/>
>> </wsdl:port>
>> <wsdl:port binding="wstrust:TransportUT_**Binding"
>> name="TransportUT_Port">
>> <soap:address location="
>> http://wkqasv0805.global.sdl.**corp:9080/fedizidpsts/**STSService<http://wkqasv0805.global.sdl.corp:9080/fedizidpsts/STSService>
>> "/>
>> </wsdl:port>
>> <wsdl:port binding="wstrust:**TransportKerberos_Binding"
>> name="TransportKerberos_Port">
>> <soap:address location="
>> http://wkqasv0805.global.sdl.**corp:8080/jaxws-sts/sts<http://wkqasv0805.global.sdl.corp:8080/jaxws-sts/sts>
>> "/>
>> </wsdl:port>
>> <wsdl:port binding="wstrust:UTEncrypted_**Binding"
>> name="UTEncrypted_Port">
>> <soap:address location="
>> http://wkqasv0805.global.sdl.**corp:8080/jaxws-sts/sts<http://wkqasv0805.global.sdl.corp:8080/jaxws-sts/sts>
>> "/>
>> </wsdl:port>
>> <wsdl:port binding="wstrust:Transport_**Binding"
>> name="Transport_Port">
>> <soap:address location="/**STSServiceTransport"/>
>> </wsdl:port>
>> <wsdl:port binding="wstrust:UT_Binding" name="UT_Port">
>> <soap:address location="
>> http://wkqasv0805.global.sdl.**corp:8080/jaxws-sts/sts<http://wkqasv0805.global.sdl.corp:8080/jaxws-sts/sts>
>> "/>
>> </wsdl:port>
>> </wsdl:service>
>>
>> On Mon, Jul 9, 2012 at 12:58 PM, Gina Choi <gi...@gmail.com> wrote:
>>
>> Hi all,
>>>
>>>
>>> We try to integrate .NET application for SSO+Web security using CXF-Fediz
>>> STS. Passive profile worked well without any problem. Now we try to call
>>> cxf-encrypted-ut.xml endpoint using actas and we need a soap address for
>>> this endpoint. If we look at ADFS2.0 wsdl file, I have following part.
>>>
>>> <wsdl:service name="SecurityTokenService">
>>> <wsdl:port name="UserNameWSTrustBinding_**IWSTrust13Async2"
>>> binding="tns:**UserNameWSTrustBinding_**IWSTrust13Async2">
>>> <soap12:address location="
>>> https://strts01.ams.dev/adfs/**services/trust/13/**usernamemixed<https://strts01.ams.dev/adfs/services/trust/13/usernamemixed>"
>>> />
>>> <wsa10:EndpointReference>
>>> <wsa10:Address>
>>> https://strts01.ams.dev/adfs/**services/trust/13/**
>>> usernamemixed<https://strts01.ams.dev/adfs/services/trust/13/usernamemixed>
>>> </wsa10:Address>
>>> </wsa10:EndpointReference>
>>> </wsdl:port>
>>> </wsdl:service>
>>>
>>> I am looking for corresponding end point soap address(
>>> https://strts01.ams.dev/adfs/**services/trust/13/**usernamemixed<https://strts01.ams.dev/adfs/services/trust/13/usernamemixed>)
>>> from
>>> CXF-Fediz STS. If I look at ws-trust-1.4-service.wsdl file, we have
>>> following. Soap address for each ports are the same. How do we identify
>>> soap addresses? Do we need additional configuration? By the way, I
>>> currently I have CXF-Fediz STS + OpenLDAP environment.
>>>
>>> <wsdl:service name="SecurityTokenService">
>>> <wsdl:port name="UT_Port" binding="tns:UT_Binding">
>>> <soap:address location="http://localhost:**8080/jaxws-sts/sts<http://localhost:8080/jaxws-sts/sts>"
>>> />
>>> </wsdl:port>
>>> <wsdl:port name="X509_Port" binding="tns:X509_Binding">
>>> <soap:address location="http://localhost:**8080/jaxws-sts/sts<http://localhost:8080/jaxws-sts/sts>"
>>> />
>>> </wsdl:port>
>>> <wsdl:port name="Transport_Port" binding="tns:Transport_**
>>> Binding">
>>> <soap:address location="http://localhost:**8080/jaxws-sts/sts<http://localhost:8080/jaxws-sts/sts>"
>>> />
>>> </wsdl:port>
>>> <wsdl:port name="UTEncrypted_Port"
>>> binding="tns:UTEncrypted_**Binding">
>>> <soap:address location="http://localhost:**8080/jaxws-sts/sts<http://localhost:8080/jaxws-sts/sts>"
>>> />
>>> </wsdl:port>
>>> <wsdl:port name="TransportUT_Port"
>>> binding="tns:TransportUT_**Binding">
>>> <soap:address location="http://localhost:**8080/jaxws-sts/sts<http://localhost:8080/jaxws-sts/sts>"
>>> />
>>> </wsdl:port>
>>> <wsdl:port name="TransportKerberos_Port"
>>> binding="tns:**TransportKerberos_Binding">
>>> <soap:address location="
>>> http://wkengchoi.global.sdl.**corp:8080/jaxws-sts/sts<http://wkengchoi.global.sdl.corp:8080/jaxws-sts/sts>"
>>> />
>>> </wsdl:port>
>>> </wsdl:service>
>>>
>>> Thanks.
>>>
>>> Gina
>>>
>>>
>
> --
> Glen Mazza
> Talend Community Coders
> coders.talend.com
> blog: www.jroller.com/gmazza
>
>
Re: Soap address for Apache CXF-Fediz STS active end points
Posted by Glen Mazza <gm...@talend.com>.
Yes, the http://localhost:8080/jaxws-sts/sts addresses are dummy
addresses, you'll see the actual ones once you deploy the STS. Only a
SOAP client relies on the soap:address location fields (and for those it
must be accurate), for web service endpoints they use an algorithm as
described in Note #2 here:
http://www.jroller.com/gmazza/entry/web_service_tutorial#notes.
My browser returned similar (but not identical) results:
<wsdl:service name="SecurityTokenService">
<wsdl:port binding="wstrust:X509_Binding"name="X509_Port">
<soap:address location="http://localhost:8080/jaxws-sts/sts"/>
</wsdl:port>
<wsdl:port binding="wstrust:TransportUT_Binding"name="TransportUT_Port">
<soap:address location="https://localhost:9443/fedizidpsts/STSService"/>
</wsdl:port>
<wsdl:port binding="wstrust:TransportKerberos_Binding"name="TransportKerberos_Port">
<soap:address location="http://localhost:8080/jaxws-sts/sts"/>
</wsdl:port>
<wsdl:port binding="wstrust:UTEncrypted_Binding"name="UTEncrypted_Port">
<soap:address location="http://localhost:8080/jaxws-sts/sts"/>
</wsdl:port>
<wsdl:port binding="wstrust:Transport_Binding"name="Transport_Port">
<soap:address location="https://localhost:9443/fedizidpsts/STSServiceTransport"/>
</wsdl:port>
<wsdl:port binding="wstrust:UT_Binding"name="UT_Port">
<soap:address location="http://localhost:8080/jaxws-sts/sts"/>
</wsdl:port>
</wsdl:service>
Offhand, I would say the problem is in the Fediz STS configuration, it
shouldn't need to have six ports open (one should be sufficient). How
do you want to authenticate against the IDP STS? That will determine
which port needs configuration and which ports should be deleted from
your WSDL.
Regards,
Glen
On 07/09/2012 01:16 PM, Gina Choi wrote:
> I just browsed my CXF-Fediz wsdl file, I am seeing following. Both
> TransportUT_Port and Transport_Port soap address look valid. I need to have
> valid soap address for UTEncrypted_Port and UT_Por. I must missing some
> additional configuration.
>
> <wsdl:service name="SecurityTokenService">
> <wsdl:port binding="wstrust:X509_Binding" name="X509_Port">
> <soap:address location="
> http://wkqasv0805.global.sdl.corp:8080/jaxws-sts/sts"/>
> </wsdl:port>
> <wsdl:port binding="wstrust:TransportUT_Binding"
> name="TransportUT_Port">
> <soap:address location="
> http://wkqasv0805.global.sdl.corp:9080/fedizidpsts/STSService"/>
> </wsdl:port>
> <wsdl:port binding="wstrust:TransportKerberos_Binding"
> name="TransportKerberos_Port">
> <soap:address location="
> http://wkqasv0805.global.sdl.corp:8080/jaxws-sts/sts"/>
> </wsdl:port>
> <wsdl:port binding="wstrust:UTEncrypted_Binding"
> name="UTEncrypted_Port">
> <soap:address location="
> http://wkqasv0805.global.sdl.corp:8080/jaxws-sts/sts"/>
> </wsdl:port>
> <wsdl:port binding="wstrust:Transport_Binding" name="Transport_Port">
> <soap:address location="/STSServiceTransport"/>
> </wsdl:port>
> <wsdl:port binding="wstrust:UT_Binding" name="UT_Port">
> <soap:address location="
> http://wkqasv0805.global.sdl.corp:8080/jaxws-sts/sts"/>
> </wsdl:port>
> </wsdl:service>
>
> On Mon, Jul 9, 2012 at 12:58 PM, Gina Choi <gi...@gmail.com> wrote:
>
>> Hi all,
>>
>>
>> We try to integrate .NET application for SSO+Web security using CXF-Fediz
>> STS. Passive profile worked well without any problem. Now we try to call
>> cxf-encrypted-ut.xml endpoint using actas and we need a soap address for
>> this endpoint. If we look at ADFS2.0 wsdl file, I have following part.
>>
>> <wsdl:service name="SecurityTokenService">
>> <wsdl:port name="UserNameWSTrustBinding_IWSTrust13Async2"
>> binding="tns:UserNameWSTrustBinding_IWSTrust13Async2">
>> <soap12:address location="
>> https://strts01.ams.dev/adfs/services/trust/13/usernamemixed" />
>> <wsa10:EndpointReference>
>> <wsa10:Address>
>> https://strts01.ams.dev/adfs/services/trust/13/usernamemixed
>> </wsa10:Address>
>> </wsa10:EndpointReference>
>> </wsdl:port>
>> </wsdl:service>
>>
>> I am looking for corresponding end point soap address(
>> https://strts01.ams.dev/adfs/services/trust/13/usernamemixed) from
>> CXF-Fediz STS. If I look at ws-trust-1.4-service.wsdl file, we have
>> following. Soap address for each ports are the same. How do we identify
>> soap addresses? Do we need additional configuration? By the way, I
>> currently I have CXF-Fediz STS + OpenLDAP environment.
>>
>> <wsdl:service name="SecurityTokenService">
>> <wsdl:port name="UT_Port" binding="tns:UT_Binding">
>> <soap:address location="http://localhost:8080/jaxws-sts/sts" />
>> </wsdl:port>
>> <wsdl:port name="X509_Port" binding="tns:X509_Binding">
>> <soap:address location="http://localhost:8080/jaxws-sts/sts" />
>> </wsdl:port>
>> <wsdl:port name="Transport_Port" binding="tns:Transport_Binding">
>> <soap:address location="http://localhost:8080/jaxws-sts/sts" />
>> </wsdl:port>
>> <wsdl:port name="UTEncrypted_Port"
>> binding="tns:UTEncrypted_Binding">
>> <soap:address location="http://localhost:8080/jaxws-sts/sts" />
>> </wsdl:port>
>> <wsdl:port name="TransportUT_Port"
>> binding="tns:TransportUT_Binding">
>> <soap:address location="http://localhost:8080/jaxws-sts/sts" />
>> </wsdl:port>
>> <wsdl:port name="TransportKerberos_Port"
>> binding="tns:TransportKerberos_Binding">
>> <soap:address location="
>> http://wkengchoi.global.sdl.corp:8080/jaxws-sts/sts" />
>> </wsdl:port>
>> </wsdl:service>
>>
>> Thanks.
>>
>> Gina
>>
--
Glen Mazza
Talend Community Coders
coders.talend.com
blog: www.jroller.com/gmazza
Re: Soap address for Apache CXF-Fediz STS active end points
Posted by Gina Choi <gi...@gmail.com>.
I just browsed my CXF-Fediz wsdl file, I am seeing following. Both
TransportUT_Port and Transport_Port soap address look valid. I need to have
valid soap address for UTEncrypted_Port and UT_Por. I must missing some
additional configuration.
<wsdl:service name="SecurityTokenService">
<wsdl:port binding="wstrust:X509_Binding" name="X509_Port">
<soap:address location="
http://wkqasv0805.global.sdl.corp:8080/jaxws-sts/sts"/>
</wsdl:port>
<wsdl:port binding="wstrust:TransportUT_Binding"
name="TransportUT_Port">
<soap:address location="
http://wkqasv0805.global.sdl.corp:9080/fedizidpsts/STSService"/>
</wsdl:port>
<wsdl:port binding="wstrust:TransportKerberos_Binding"
name="TransportKerberos_Port">
<soap:address location="
http://wkqasv0805.global.sdl.corp:8080/jaxws-sts/sts"/>
</wsdl:port>
<wsdl:port binding="wstrust:UTEncrypted_Binding"
name="UTEncrypted_Port">
<soap:address location="
http://wkqasv0805.global.sdl.corp:8080/jaxws-sts/sts"/>
</wsdl:port>
<wsdl:port binding="wstrust:Transport_Binding" name="Transport_Port">
<soap:address location="/STSServiceTransport"/>
</wsdl:port>
<wsdl:port binding="wstrust:UT_Binding" name="UT_Port">
<soap:address location="
http://wkqasv0805.global.sdl.corp:8080/jaxws-sts/sts"/>
</wsdl:port>
</wsdl:service>
On Mon, Jul 9, 2012 at 12:58 PM, Gina Choi <gi...@gmail.com> wrote:
> Hi all,
>
>
> We try to integrate .NET application for SSO+Web security using CXF-Fediz
> STS. Passive profile worked well without any problem. Now we try to call
> cxf-encrypted-ut.xml endpoint using actas and we need a soap address for
> this endpoint. If we look at ADFS2.0 wsdl file, I have following part.
>
> <wsdl:service name="SecurityTokenService">
> <wsdl:port name="UserNameWSTrustBinding_IWSTrust13Async2"
> binding="tns:UserNameWSTrustBinding_IWSTrust13Async2">
> <soap12:address location="
> https://strts01.ams.dev/adfs/services/trust/13/usernamemixed" />
> <wsa10:EndpointReference>
> <wsa10:Address>
> https://strts01.ams.dev/adfs/services/trust/13/usernamemixed
> </wsa10:Address>
> </wsa10:EndpointReference>
> </wsdl:port>
> </wsdl:service>
>
> I am looking for corresponding end point soap address(
> https://strts01.ams.dev/adfs/services/trust/13/usernamemixed) from
> CXF-Fediz STS. If I look at ws-trust-1.4-service.wsdl file, we have
> following. Soap address for each ports are the same. How do we identify
> soap addresses? Do we need additional configuration? By the way, I
> currently I have CXF-Fediz STS + OpenLDAP environment.
>
> <wsdl:service name="SecurityTokenService">
> <wsdl:port name="UT_Port" binding="tns:UT_Binding">
> <soap:address location="http://localhost:8080/jaxws-sts/sts" />
> </wsdl:port>
> <wsdl:port name="X509_Port" binding="tns:X509_Binding">
> <soap:address location="http://localhost:8080/jaxws-sts/sts" />
> </wsdl:port>
> <wsdl:port name="Transport_Port" binding="tns:Transport_Binding">
> <soap:address location="http://localhost:8080/jaxws-sts/sts" />
> </wsdl:port>
> <wsdl:port name="UTEncrypted_Port"
> binding="tns:UTEncrypted_Binding">
> <soap:address location="http://localhost:8080/jaxws-sts/sts" />
> </wsdl:port>
> <wsdl:port name="TransportUT_Port"
> binding="tns:TransportUT_Binding">
> <soap:address location="http://localhost:8080/jaxws-sts/sts" />
> </wsdl:port>
> <wsdl:port name="TransportKerberos_Port"
> binding="tns:TransportKerberos_Binding">
> <soap:address location="
> http://wkengchoi.global.sdl.corp:8080/jaxws-sts/sts" />
> </wsdl:port>
> </wsdl:service>
>
> Thanks.
>
> Gina
>