Add extension=true to <wsimport debug="${debug}" verbose="${verbose}" keep="${keep}" destdir="${build.classes.home}" wsdl="${business.service.wsdl}"> Thanks!
Jiandong Pablo Cibraro wrote:
Hi Jiandong, I tried to update the business service endpoint to use Soap 1.2 following the steps you mentioned below. I am getting the following compilation error after running the build process, build: [wsimport] Consider using <depends>/<produces> so that wsimport won't do unnece ssary compilation [wsimport] parsing WSDL... [wsimport] [wsimport] [wsimport] [WARNING] Ignoring SOAP port "BasicHttpBinding_ITradeServices": it u ses non-standard SOAP 1.2 binding. [wsimport] You must specify the "-extension" option to use this binding. [wsimport] line 489 of file:/C:/src/metro/etc/business_service/TradeServiceWs as.wsdl [wsimport] [wsimport] [WARNING] Ignoring SOAP port "CustomBinding_ITradeServices": it uses non-standard SOAP 1.2 binding. [wsimport] You must specify the "-extension" option to use this binding. [wsimport] line 492 of file:/C:/src/metro/etc/business_service/TradeServiceWs as.wsdl [wsimport] [wsimport] [WARNING] Service "TradeServiceWsas" does not contain any usable por ts. try running wsimport with -extension switch. [wsimport] line 488 of file:/C:/src/metro/etc/business_service/TradeServiceWs as.wsdl The ant script is already using the -extension switch. For some reason, the proxies are not being generated. Do you have any idea about what could be wrong ? Thanks Pablo. -----Original Message-----From: jiandong....@sun.com [mailto:jiandong....@sun.com] Sent: Sunday, November 01, 2009 1:33 AMTo: stonehenge-dev@incubator.apache.org Subject: Re: First interop test between Metro and .NETAny plan to test with Trade client and ActiveSTS from different Vendors. This is the case never tested before with ActAs in RST. So it is interesting to see if it works.See inline ... Pablo Cibraro wrote:It is easy to change to SOAP 1.2: in stonehengeWithCBS\business_service\etc\sun-jaxws.xml, add binding="http://www.w3.org/2003/05/soap/bindings/HTTP/" to both endpoints; then change all soap: to soap12: in TradeServiceWsas.wsdl.These are my findings,- Metro is using SOAP 1.1with WS-Addressing 1.0, so I changed all the WCF configuration in .NET to use those protocol versionsWS-Addressing 1.0 with namespace "http://www.w3.org/2005/08/addressing" is the latest version of ws-addressing. Which version were you using for .Net? Thanks! Jiandong- The Metro Active is signing/encrypting the SAML token with the certificate OPS.Com, and .NET was expecting BSL.Com (According to the specification, the ActiveSTS is run in the same domain as the business service, so BSL.Com looks like a better option). I changed the .NET implementation to use OPS.Com, and that fixed the problem.- There is bug in the metro compilation process, the com.sun.xml.ws.api.security.trust.STSAttributeProvider file was missing, and therefore it was not included in the active sts war file. I need this to apply some transformations in the SAML Attributes (The Attribute provider that comes out of the box generates an ActAs attribute without namespace so WCF is complaining about that). I created this file to use the ActiveSTSAttributeProvider implementation. - I changed the ActiveSTSAttributeProvider implementation to provide a namespace for the ActAs attributeI can commit these two changes as patch for the Metro implementation if you want.My next step is to do the opposite, run the Metro Business Service and the rest of the components in .NET Regards, Pablo. -----Original Message-----From: jiandong....@sun.com [mailto:jiandong....@sun.com] Sent: Friday, October 30, 2009 4:29 PMTo: stonehenge-dev@incubator.apache.org Subject: Re: First interop test between Metro and .NET Pablo Cibraro wrote:That is the general practice to have different endpoints for different authentication setting.Hi Ming,1. I think we should create a new endpoint for the business service that expects SAML tokens. In the current version we only have "DOTNET_BS" and "METRO_BS" (I noticed you created a new endpoint METRO_BSSTS, but the trader client application still uses the rule of the URL prefix). The .NET implementation does not support the basic profile anymore for the business service as it does not make sense anymore if we are planning to use claim based security in that service.2. Ok, I changed that class but it is not being used at all by the Active STS. Is that class automatically loaded (I could not find any configuration that references that class) ?. If it is, there is a problem there because it is not being loaded. Any clue about what need to be changed ?It should be loaded using the standard java service finding mechanism:in the active_sts.war created, there should have an file WEB-INF\classes\META_INF\services\com.sun.xml.ws.api.security.trust.STSAttributeProvider. Here "com.sun.xml.ws.api.security.trust.STSAttributeProvider" is the file name, the content of the file is the classpath of your implementing class of the interface, e.g.org.apache.stonehenge.stockstrade.sts.ActiveSTSAttributeProvider"With latest build we should all have changed to "http://schemas.xmlsoap.org/ws/2009/09/identity/claims/actor" (actor is the attribute name, http://schemas.xmlsoap.org/ws/2009/09/identity/claims <http://schemas.xmlsoap.org/ws/2009/09/identity/claims/actor> namespace) to ensure we have the same one to repent the identity of the requester.I was planning to use something like "http://sun" as the namespace. Microsoft Geneva is using http://schemas.microsoft.com/ws/2008/06/identity/claims/actingasRegards, JiandongRegards, Pablo. -----Original Message-----From: Ming Jin [mailto:skyai...@gmail.com] Sent: Thursday, October 29, 2009 7:16 PMTo: stonehenge-dev@incubator.apache.org Subject: Re: First interop test between Metro and .NET Hi Pablo, 1. We assumed the address of SEI consuming Active STS be ended up with "STS", you need to change to the URL with "STS" suffix. Meanwhile, as now we have Active STS implementations of Metro and WCF, I think we need to discuss the naming convention of these URLs. What's your opinion? 2. Yes, the ActiveSTSAttributeProvider is the class generating the attributes. What namespace are you going to use? Best Regards, Ming Jin On Thu, Oct 29, 2009 at 10:02 PM, Pablo Cibraro <pablo.cibr...@tellago.com>wrote:I finally found the problem. The trader_client application in metro is only negotiating a SAML token when the business service endpoint url ends up with "STS", so I changed the endpoint in .NET to be " http://localhost:9000/businessserviceSTS". After that, I started receiving messages with the SAML token, but I got some interop errors that I could fix (I will send the list later). Now, I am getting an error in one of the attributes that the ActiveSTS in metro is adding to the token <saml:Attribute AttributeName="ActAs" AttributeNamespace=""> <saml:AttributeValue> <!--Removed--> </saml:AttributeValue> </saml:Attribute> The attributeNamespace is empty, and WCF is complaining about that. Could you confirm that the class in metro that is generating the attributes is ActiveSTSAttributeProvider ? So I can change it on my side and see if that fixes the issue. Thanks Pablo. -----Original Message----- From: Kent Brown [mailto:kent.br...@microsoft.com] Sent: Friday, October 23, 2009 8:07 PM To: stonehenge-dev@incubator.apache.org Subject: RE: First interop test between Metro and .NET I don't see the WSDL. Does the listserv allow attachments? Maybe attach to a JIRA ticket. -----Original Message----- From: Pablo Cibraro [mailto:pablo.cibr...@tellago.com] Sent: Friday, October 23, 2009 2:33 PM To: stonehenge-dev@incubator.apache.org Subject: RE: First interop test between Metro and .NET Sure. I attached the business service WSDL. Let me know if that helps. Thanks Pablo. -----Original Message----- From: jiandong....@sun.com [mailto:jiandong....@sun.com] Sent: Thursday, October 22, 2009 7:00 PM To: stonehenge-dev@incubator.apache.org Subject: Re: First interop test between Metro and .NET Pablo Cibraro wrote:Hi Jiandong, "To ensure interoperability in this stage, we should all use issued token with a symmetric proof key as an EndorsingSupportingToken. The issued token can be encrypted by the Active STS with the service certificate and of course signed by the STS." I am sorry, that is what I meant when I said a SAML token as client credential :). BSL.Com is the certificate we used in the Active STS for encryptingOkand signing the issued tokenthe issued token should be signed with the issuer's private key, i.e the private key of the Active STS. Can you send me the .Net Business Service wsdl with security policy in it to make sure we are in the same page?. According to some tests I ran yesterday, I noticed Metro is usingOPS.Com for that purpose.That should be a mistake.Thanks! JiandongThanks Pablo. -----Original Message----- From: jiandong....@sun.com [mailto:jiandong....@sun.com] Sent: Thursday, October 22, 2009 3:04 AM To: stonehenge-dev@incubator.apache.org Subject: Re: First interop test between Metro and .NET About the security setting for the BS service and interoperability:.NET is expecting a message with the following requirements, 1. WS Security 1.1 (We need to agree on this) 2. A SAML token as client credential signed and encrypted with theBSL.Com certificate (And the userID profile as a claim in that token)In terms of security policy, this means you have a SymmetricBinding with X509 cert as protection token and an (probably bearer?) issued token as a SignedEncryptedSupportingToken. It is set up differently for Metro based BS service: SymmetricBinding with X509 cert as protection token and an keyed ssued token as an EndorsingSupportingToken. There are 2 issues here: 1. The BS web service client may be created against a local copy of the service wsdl. In this case we have a mismatch of security setting between the BS client and the BS server. 2. Even if the BS client is created from the live wsdl of the BS service, we actually have never tested the interoperability with issued token as other than an EndorsingSupportingTken (see the plugfest scenarios at http://mssoapinterop.org/ilab/). This is because of the use/lack of use of str-transform for signing SAML assertion in a message in different platforms. It is being addressed but may take time. To ensure interoperability in this stage, we should all use issued token with a symmetric proof key as an EndorsingSupportingToken. The issued token can be encrypted by the Active STS with the service certificate and of course signed by the STS. Thanks! JiandongAm I missing something, do I need to configure something else in theMetro Trader Client application to secure the messages and use a SAML token ?.Thanks Pablo.