thanks for your reminder, we did modify the
Trade.BusinessServiceConsoleHost.exe.config file rather than the
Trade.OrderProcessorConsoleHost.exe.config file, because the former one is
the file we can modify the ORDER_PROCESSIING_MODE.

we'll try that way.

BTW, do you mean the binding 'OpsClient_WsHttpBinding_MSec' is just for how
the client proxy in BS access the OPS with the binding?


On Fri, May 22, 2009 at 12:13 AM, Scott Golightly <
[email protected]> wrote:

>
> I am reading the description below and it sounds like you are trying to
> call the order processor service but made the change to X509 negotiation to
> the business service. The configuration file for the order processor service
> is . You might want to see if turning off X509 negotiation on that service
> fixes the problem.
>
> Another item to be aware of is if you compile the project the
> Trade.OrderProcessorConsoleHost.exe.config file is overwritten. To make sure
> the changes are in the config file after a compile you can update the
> App.config file in the OrderProcessorConsoleServiceHost directory.
>
>
>
> Scott Golightly
>
> > Date: Thu, 21 May 2009 22:07:04 +0800
> > Subject: Interoperability Failure: SslContextToken & WS-Policy
> > From: [email protected]
> > To: [email protected]
> > CC: [email protected]; [email protected]; [email protected];
> [email protected]; [email protected]; [email protected];
> [email protected]; [email protected]; [email protected]
> >
> > Hi, we're configuring stonehenge to use Java WSIT client to connect the
> .NET
> > orderprocessor service via wsHttpBinding.
> >
> > We followed the installation document under the .net directory from
> > stonehenge m1 branch, and we got order processor service running via both
> > basicHttpBinding and wsHttpBinding.
> >
> > At first, we tried the interoperability via basicHttpBinding, the result
> was
> > perfect.
> >
> > Then we wanted to configure it to via wsHttpBinding, but we encountered
> the
> > following problem:
> > --------------
> > May 21, 2009 8:21:21 PM com.sun.xml.ws.security.impl.policy.Constants
> > log_invalid_assertion
> > WARNING: SP0100: Policy assertion
> >
> Assertion[com.sun.xml.ws.policy.sourcemodel.DefaultPolicyAssertionCreator$DefaultPolicyAssertion]
> > {
> > assertion data {
> > namespace = 'http://schemas.microsoft.com/ws/2005/07/securitypolicy'
> > prefix = 'mssp'
> > local name = 'SslContextToken'
> > value = 'null'
> > optional = 'false'
> > ignorable = 'false'
> > attributes {
> > name = '
> > http://schemas.xmlsoap.org/ws/2005/07/securitypolicy:IncludeToken',
> value =
> > '
> >
> http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient
> > '
> > }
> > }
> > no parameters
> > nested policy {
> > namespace version = 'v1_5'
> > id = 'null'
> > name = 'null'
> > vocabulary {
> > 1. entry = '
> >
> http://schemas.microsoft.com/ws/2005/07/securitypolicy:RequireClientCertificate
> > '
> > 2. entry = '
> > http://schemas.xmlsoap.org/ws/2005/07/securitypolicy:RequireDerivedKeys'
> > }
> > assertion set {
> >
> >
> Assertion[com.sun.xml.ws.policy.sourcemodel.DefaultPolicyAssertionCreator$DefaultPolicyAssertion]
> > {
> > assertion data {
> > namespace = '
> > http://schemas.microsoft.com/ws/2005/07/securitypolicy'
> > prefix = 'mssp'
> > local name = 'RequireClientCertificate'
> > value = 'null'
> > optional = 'false'
> > ignorable = 'false'
> > no attributes
> > }
> > no parameters
> > no nested policy
> > }
> >
> >
> Assertion[com.sun.xml.ws.policy.sourcemodel.DefaultPolicyAssertionCreator$DefaultPolicyAssertion]
> > {
> > assertion data {
> > namespace = '
> > http://schemas.xmlsoap.org/ws/2005/07/securitypolicy'
> > prefix = 'sp'
> > local name = 'RequireDerivedKeys'
> > value = 'null'
> > optional = 'false'
> > ignorable = 'false'
> > no attributes
> > }
> > no parameters
> > no nested policy
> > }
> > }
> > }
> > } is not supported under Token assertion.
> > Exception in thread "main" java.lang.NullPointerException
> > at
> >
> com.sun.xml.ws.security.impl.policy.PolicyUtil.isSecurityPolicyNS(PolicyUtil.java:70)
> > at
> >
> com.sun.xml.ws.security.impl.policy.PolicyUtil.isIssuedToken(PolicyUtil.java:644)
> > at
> >
> com.sun.xml.ws.security.impl.policyconv.SCTokenWrapper.addToken(SCTokenWrapper.java:222)
> > at
> >
> com.sun.xml.ws.security.impl.policyconv.SCTokenWrapper.getTokens(SCTokenWrapper.java:205)
> > at
> >
> com.sun.xml.ws.security.impl.policyconv.SCTokenWrapper.getIssuedTokens(SCTokenWrapper.java:169)
> > at
> >
> com.sun.xml.wss.jaxws.impl.SecurityTubeBase.getIssuedTokenPoliciesFromBootstrapPolicy(SecurityTubeBase.java:458)
> > at
> >
> com.sun.xml.wss.jaxws.impl.SecurityTubeBase.constructPolicyHolder(SecurityTubeBase.java:1332)
> > at
> >
> com.sun.xml.wss.jaxws.impl.SecurityClientTube.addIncomingProtocolPolicy(SecurityClientTube.java:599)
> > at
> >
> com.sun.xml.wss.jaxws.impl.SecurityTubeBase.buildProtocolPolicy(SecurityTubeBase.java:1258)
> > at
> >
> com.sun.xml.wss.jaxws.impl.SecurityTubeBase.collectPolicies(SecurityTubeBase.java:752)
> > at
> >
> com.sun.xml.wss.jaxws.impl.SecurityTubeBase.<init>(SecurityTubeBase.java:284)
> > at
> >
> com.sun.xml.wss.jaxws.impl.SecurityClientTube.<init>(SecurityClientTube.java:131)
> > at
> >
> com.sun.xml.wss.provider.wsit.SecurityTubeAppender.appendTube(SecurityTubeAppender.java:189)
> > at
> >
> com.sun.xml.ws.assembler.TubelineAssemblerFactoryImpl$WsitTubelineAssembler.createClient(TubelineAssemblerFactoryImpl.java:79)
> > at
> >
> com.sun.xml.ws.client.WSServiceDelegate.createPipeline(WSServiceDelegate.java:446)
> > at
> >
> com.sun.xml.ws.client.WSServiceDelegate.createEndpointIFBaseProxy(WSServiceDelegate.java:639)
> > at
> >
> com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:342)
> > at
> >
> com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:324)
> > at
> >
> com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:306)
> > at javax.xml.ws.Service.getPort(Service.java:92)
> > at
> >
> org.tempuri.OrderProcessor.getWSHttpBindingOrderProcessorService(OrderProcessor.java:78)
> > at
> >
> org.wso2.stocktrader.services.TradeOrderServiceClient.SubmitOrderTrasactedQueue(Unknown
> > Source)
> > at org.wso2.stocktrader.services.TradeOrderServiceClient.main(Unknown
> > Source)
> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > at
> >
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> > at
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> > at java.lang.reflect.Method.invoke(Method.java:597)
> > at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
> >
> > Process finished with exit code 1
> > --------------
> >
> > After some digging by google, we found this article with the solution:
> > Interoperability Gotcha: SslContextToken Negotiation & WS-Policy (
> >
> http://proxy88.com/index.php?hl=f5&q=uggc%3A%2F%2Fjrofreivprf20.oybtfcbg.pbz%2F2008%2F10%2Fvagrebcrenovyvgl-tbgpun-ffypbagrkggbxra.ugzy
> )
> >
> > There the author provided a solution, we can turn the X.509 negotiation
> off
> > by updating wshttpbinding configuration like bellow
> > <security>
> > <message clientCredentialType="None" negotiateServiceCredential="false"
> > />
> > </security>
> >
> > So, we updated the relevant configuration in
> > Trade.BusinessServiceConsole.exe.config as bellow:
> >
> > <binding name="OpsClient_WsHttpBinding_MSec" closeTimeout="00:01:00"
> > openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
> > bypassProxyOnLocal="false" transactionFlow="false"
> > hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288"
> > maxReceivedMessageSize="65536" messageEncoding="Text"
> textEncoding="utf-8"
> > useDefaultWebProxy="true" allowCookies="false">
> > <readerQuotas maxDepth="32" maxStringContentLength="8192"
> > maxArrayLength="16384" maxBytesPerRead="4096"
> maxNameTableCharCount="16384"
> > />
> > <reliableSession ordered="true" inactivityTimeout="00:10:00"
> > enabled="false" />
> > <security mode="Message">
> > <!--<transport clientCredentialType="Windows"
> > proxyCredentialType="None" realm="" />--><!--here we comment it out-->
> > <!--<message clientCredentialType="Certificate"
> > negotiateServiceCredential="true" algorithmSuite="Default"
> > establishSecurityContext="true" />--><!--here we comment it out-->
> > <message clientCredentialType="None"
> > negotiateServiceCredential="false"/>
> > </security>
> > </binding>
> >
> > However, the error message as former still occured.
> >
> > Here is our java client code:
> >
> > OrderProcessor processor = new OrderProcessor(new URL("
> > http://localhost:8000/tradeorderprocessor";), new QName("
> http://tempuri.org/";,
> > "OrderProcessor"));
> > //OrderProcessor class is generated by wsimport from
> > http://localhost:8000/tradeorderprocessor?wsdl
> > OrderProcessorService service =
> > processor.getWSHttpBindingOrderProcessorService();
> > SubmitOrder param = new SubmitOrder();
> > param.setOrder(order);
> > service.submitOrder(param);
> >
> > We've imported the certificate of CN OPS.Com into the keystore.jks for
> the
> > glassfish, and imported the certificate of alias 's1as' from glassfish
> into
> > mmc.
> >
> > We tried to find some examples about using WSIT to inter-operate the java
> > client and .net service provider via wsHttpBinding, but there are so few
> > materials or examples.
> >
> > Does anyone have any suggestion? Where can we find the examples that
> > represent the interoperability via wsHttpBinding?
> >
> >
> >
> > ----
> > Ming Jin
> >
> > Consultant
> > Thoughtworks, Inc
>



-- 
Ming Jin

Consultant
Thoughtworks, Inc

Reply via email to