WSS1601: Security Requirements not met - Transport binding configured in policy but incoming message was not SSL enabled

0
Hi, We try to connect to a SAP (webservice) with Soap. End point is a http url (no https) In Soap ui everything works fine without a certificate. There is no certificate because it's http. why do I get the error when I use Mendix to connect to the webservice: " Transport binding configured in policy but incoming message was not SSL enabled" Do I have to change the WSDL manually? Thanks!!! This is the WSDL: <?xml version="1.0" encoding="utf-8"?> <wsdl:definitions targetNamespace="urn:sap-com:document:sap:soap:functions:mc-style" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsoap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="urn:sap-com:document:sap:soap:functions:mc-style" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:n1="urn:sap-com:document:sap:rfc:functions"> <wsdl:documentation> <sidl:sidl xmlns:sidl="http://www.sap.com/2007/03/sidl"/> </wsdl:documentation> <wsp:Policy wsu:Id="BN__Zwsb_Stock_Overview_St_Loc"> <wsp:ExactlyOne> <wsp:All> <sapattahnd:Enabled xmlns:sapattahnd="http://www.sap.com/710/features/attachment/">false</sapattahnd:Enabled> <saptrnbnd:OptimizedMimeSerialization xmlns:saptrnbnd="http://schemas.xmlsoap.org/ws/2004/09/policy/optimizedmimeserialization" wsp:Optional="true"/> <wsaw:UsingAddressing xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" wsp:Optional="true"/> <wsp:All xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"> <sp:TransportBinding xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702" xmlns:sapsp="http://www.sap.com/webas/630/soap/features/security/policy" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wst="http://docs.oasis-open.org/ws-sx/ws-trust/200512" xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex"> <wsp:Policy> <sp:TransportToken> <wsp:Policy> <sp:HttpsToken> <wsp:Policy> <sp:HttpBasicAuthentication/> </wsp:Policy> </sp:HttpsToken> </wsp:Policy> </sp:TransportToken> <sp:AlgorithmSuite> <wsp:Policy> <sp:Basic128Rsa15/> </wsp:Policy> </sp:AlgorithmSuite> <sp:Layout> <wsp:Policy> <sp:Strict/> </wsp:Policy> </sp:Layout> </wsp:Policy> </sp:TransportBinding> </wsp:All> </wsp:All> <wsp:All> <sapattahnd:Enabled xmlns:sapattahnd="http://www.sap.com/710/features/attachment/">false</sapattahnd:Enabled> <saptrnbnd:OptimizedXMLTransfer uri="http://xml.sap.com/2006/11/esi/esp/binxml" xmlns:saptrnbnd="http://www.sap.com/webas/710/soap/features/transportbinding/" wsp:Optional="true"/> <wsaw:UsingAddressing xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" wsp:Optional="true"/> <wsp:All xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"> <sp:TransportBinding xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702" xmlns:sapsp="http://www.sap.com/webas/630/soap/features/security/policy" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wst="http://docs.oasis-open.org/ws-sx/ws-trust/200512" xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex"> <wsp:Policy> <sp:TransportToken> <wsp:Policy> <sp:HttpsToken> <wsp:Policy> <sp:HttpBasicAuthentication/> </wsp:Policy> </sp:HttpsToken> </wsp:Policy> </sp:TransportToken> <sp:AlgorithmSuite> <wsp:Policy> <sp:Basic128Rsa15/> </wsp:Policy> </sp:AlgorithmSuite> <sp:Layout> <wsp:Policy> <sp:Strict/> </wsp:Policy> </sp:Layout> </wsp:Policy> </sp:TransportBinding> </wsp:All> </wsp:All> </wsp:ExactlyOne> </wsp:Policy> <wsp:Policy wsu:Id="BN__Zwsb_Stock_Overview_St_Loc_soap12"> <wsp:ExactlyOne> <wsp:All> <sapattahnd:Enabled xmlns:sapattahnd="http://www.sap.com/710/features/attachment/">false</sapattahnd:Enabled> <saptrnbnd:OptimizedMimeSerialization xmlns:saptrnbnd="http://schemas.xmlsoap.org/ws/2004/09/policy/optimizedmimeserialization" wsp:Optional="true"/> <wsaw:UsingAddressing xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" wsp:Optional="true"/> <wsp:All xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"> <sp:TransportBinding xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702" xmlns:sapsp="http://www.sap.com/webas/630/soap/features/security/policy" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wst="http://docs.oasis-open.org/ws-sx/ws-trust/200512" xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex"> <wsp:Policy> <sp:TransportToken> <wsp:Policy> <sp:HttpsToken> <wsp:Policy> <sp:HttpBasicAuthentication/> </wsp:Policy> </sp:HttpsToken> </wsp:Policy> </sp:TransportToken> <sp:AlgorithmSuite> <wsp:Policy> <sp:Basic128Rsa15/> </wsp:Policy> </sp:AlgorithmSuite> <sp:Layout> <wsp:Policy> <sp:Strict/> </wsp:Policy> </sp:Layout> </wsp:Policy> </sp:TransportBinding> </wsp:All> </wsp:All> <wsp:All> <sapattahnd:Enabled xmlns:sapattahnd="http://www.sap.com/710/features/attachment/">false</sapattahnd:Enabled> <saptrnbnd:OptimizedXMLTransfer uri="http://xml.sap.com/2006/11/esi/esp/binxml" xmlns:saptrnbnd="http://www.sap.com/webas/710/soap/features/transportbinding/" wsp:Optional="true"/> <wsaw:UsingAddressing xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" wsp:Optional="true"/> <wsp:All xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"> <sp:TransportBinding xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702" xmlns:sapsp="http://www.sap.com/webas/630/soap/features/security/policy" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wst="http://docs.oasis-open.org/ws-sx/ws-trust/200512" xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex"> <wsp:Policy> <sp:TransportToken> <wsp:Policy> <sp:HttpsToken> <wsp:Policy> <sp:HttpBasicAuthentication/> </wsp:Policy> </sp:HttpsToken> </wsp:Policy> </sp:TransportToken> <sp:AlgorithmSuite> <wsp:Policy> <sp:Basic128Rsa15/> </wsp:Policy> </sp:AlgorithmSuite> <sp:Layout> <wsp:Policy> <sp:Strict/> </wsp:Policy> </sp:Layout> </wsp:Policy> </sp:TransportBinding> </wsp:All> </wsp:All> </wsp:ExactlyOne> </wsp:Policy> <wsp:Policy wsu:Id="IF__zwsd_stock_overview_st_loc"> <wsp:ExactlyOne> <wsp:All> <sapsession:Session xmlns:sapsession="http://www.sap.com/webas/630/soap/features/session/"> <sapsession:enableSession>false</sapsession:enableSession> </sapsession:Session> <sapcentraladmin:CentralAdministration xmlns:sapcentraladmin="http://www.sap.com/webas/700/soap/features/CentralAdministration/" wsp:Optional="true"> <sapcentraladmin:BusinessApplicationID>E2338D33ED0B1EE596DC1DDB900B52AC</sapcentraladmin:BusinessApplicationID> </sapcentraladmin:CentralAdministration> </wsp:All> </wsp:ExactlyOne> </wsp:Policy> <wsp:Policy wsu:Id="OP__ZgvfStockOverview01P"> <wsp:ExactlyOne> <wsp:All> <saptrhnw05:required xmlns:saptrhnw05="http://www.sap.com/NW05/soap/features/transaction/">no</saptrhnw05:required> <sapcomhnd:enableCommit xmlns:sapcomhnd="http://www.sap.com/NW05/soap/features/commit/">false</sapcomhnd:enableCommit> <sapblock:enableBlocking xmlns:sapblock="http://www.sap.com/NW05/soap/features/blocking/">true</sapblock:enableBlocking> <saprmnw05:enableWSRM xmlns:saprmnw05="http://www.sap.com/NW05/soap/features/wsrm/">false</saprmnw05:enableWSRM> </wsp:All> </wsp:ExactlyOne> </wsp:Policy> <wsdl:types> <xsd:schema attributeFormDefault="qualified" targetNamespace="urn:sap-com:document:sap:rfc:functions"> <xsd:simpleType name="char1"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="1"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="char10"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="char100"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="100"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="char14"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="14"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="char18"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="18"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="char2"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="2"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="char20"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="20"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="char220"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="220"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="char3"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="3"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="char30"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="30"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="char32"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="32"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="char4"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="4"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="char40"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="char50"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="50"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="char9"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="9"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="date10"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10"/> <xsd:pattern value="\d\d\d\d-\d\d-\d\d"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="numeric3"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="3"/> <xsd:pattern value="\d*"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="numeric6"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="6"/> <xsd:pattern value="\d*"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="quantum13.3"> <xsd:restriction base="xsd:decimal"> <xsd:totalDigits value="13"/> <xsd:fractionDigits value="3"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="quantum15.3"> <xsd:restriction base="xsd:decimal"> <xsd:totalDigits value="15"/> <xsd:fractionDigits value="3"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="time"> <xsd:restriction base="xsd:time"> <xsd:pattern value="[0-9]{2}:[0-9]{2}:[0-9]{2}"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="unit3"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="3"/> </xsd:restriction> </xsd:simpleType> </xsd:schema> <xsd:schema attributeFormDefault="qualified" targetNamespace="urn:sap-com:document:sap:soap:functions:mc-style" xmlns:n0="urn:sap-com:document:sap:rfc:functions"> <xsd:import namespace="urn:sap-com:document:sap:rfc:functions"/> <xsd:simpleType name="char12"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="12"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="char35"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="35"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="char4"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="4"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="unit3"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="3"/> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="ZgvsStockOverview01P"> <xsd:sequence> <xsd:element name="ZzPlant" type="n0:char4"/> <xsd:element name="ZzMaterial" type="n0:char18"/> <xsd:element name="ZzOldMaterial" type="n0:char18"/> <xsd:element name="ZzMMaterial" type="n0:char40"/> <xsd:element name="ZzMaterialDesrc" type="n0:char40"/> <xsd:element name="ZzMatGroup" type="n0:char9"/> <xsd:element name="ZzBaseUom" type="n0:unit3"/> <xsd:element name="ZzStorageLocatio" type="n0:char4"/> <xsd:element name="ZzQStorloc" type="n0:char10"/> <xsd:element name="ZzStockAdmin" type="n0:quantum13.3"/> <xsd:element name="ZzStockAvailable" type="n0:quantum15.3"/> <xsd:element name="ZzStockReserved" type="n0:quantum15.3"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="ZgvsEnvelopePortal"> <xsd:sequence> <xsd:element name="ZzCustomer" type="n0:char4"/> <xsd:element name="ZzWarehouse" type="n0:char3"/> <xsd:element name="ZzSalesOrganization" type="tns:char4"/> <xsd:element name="ZzWeightUnit" type="tns:unit3"/> <xsd:element name="ZzVolumeUnit" type="tns:unit3"/> <xsd:element name="ZzPortalUserId" type="tns:char12"/> <xsd:element name="ZzPortalUserName" type="tns:char35"/> <xsd:element name="ZzDate" type="n0:date10"/> <xsd:element name="ZzTime" type="n0:time"/> <xsd:element name="ZzVariant" type="n0:char14"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="RecaSeloption"> <xsd:sequence> <xsd:element name="Fieldname" type="n0:char30"/> <xsd:element name="TWhere" type="tns:ReTWhere"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="Recawhere"> <xsd:sequence> <xsd:element name="Sign" type="n0:char1"/> <xsd:element name="Option" type="n0:char2"/> <xsd:element name="Low" type="n0:char100"/> <xsd:element name="High" type="n0:char100"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="Bapiret2"> <xsd:sequence> <xsd:element name="Type" type="n0:char1"/> <xsd:element name="Id" type="n0:char20"/> <xsd:element name="Number" type="n0:numeric3"/> <xsd:element name="Message" type="n0:char220"/> <xsd:element name="LogNo" type="n0:char20"/> <xsd:element name="LogMsgNo" type="n0:numeric6"/> <xsd:element name="MessageV1" type="n0:char50"/> <xsd:element name="MessageV2" type="n0:char50"/> <xsd:element name="MessageV3" type="n0:char50"/> <xsd:element name="MessageV4" type="n0:char50"/> <xsd:element name="Parameter" type="n0:char32"/> <xsd:element name="Row" type="xsd:int"/> <xsd:element name="Field" type="n0:char30"/> <xsd:element name="System" type="n0:char10"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="TableOfZgvsStockOverview01P"> <xsd:sequence> <xsd:element name="item" type="tns:ZgvsStockOverview01P" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="ReStSeloption"> <xsd:sequence> <xsd:element name="item" type="tns:RecaSeloption" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="ReTWhere"> <xsd:sequence> <xsd:element name="item" type="tns:Recawhere" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:element name="ZgvfStockOverview01P"> <xsd:complexType> <xsd:sequence> <xsd:element name="EtStockOverview" type="tns:TableOfZgvsStockOverview01P"/> <xsd:element name="IsEnvelope" type="tns:ZgvsEnvelopePortal"/> <xsd:element name="ItSelection" type="tns:ReStSeloption"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="ZgvfStockOverview01PResponse"> <xsd:complexType> <xsd:sequence> <xsd:element name="EsReturn" type="tns:Bapiret2"/> <xsd:element name="EtStockOverview" type="tns:TableOfZgvsStockOverview01P"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> </wsdl:types> <wsdl:message name="ZgvfStockOverview01P"> <wsdl:part name="parameters" element="tns:ZgvfStockOverview01P"/> </wsdl:message> <wsdl:message name="ZgvfStockOverview01PResponse"> <wsdl:part name="parameter" element="tns:ZgvfStockOverview01PResponse"/> </wsdl:message> <wsdl:portType name="zwsd_stock_overview_st_loc"> <wsp:Policy> <wsp:PolicyReference URI="#IF__zwsd_stock_overview_st_loc"/> </wsp:Policy> <wsdl:operation name="ZgvfStockOverview01P"> <wsp:Policy> <wsp:PolicyReference URI="#OP__ZgvfStockOverview01P"/> </wsp:Policy> <wsdl:input message="tns:ZgvfStockOverview01P"/> <wsdl:output message="tns:ZgvfStockOverview01PResponse"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="Zwsb_Stock_Overview_St_Loc" type="tns:zwsd_stock_overview_st_loc"> <wsp:Policy> <wsp:PolicyReference URI="#BN__Zwsb_Stock_Overview_St_Loc"/> </wsp:Policy> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <wsdl:operation name="ZgvfStockOverview01P"> <soap:operation soapAction="urn:sap-com:document:sap:soap:functions:mc-style:zwsd_stock_overview_st_loc:ZgvfStockOverview01PRequest" style="document"/> <wsdl:input> <soap:body use="literal"/> </wsdl:input> <wsdl:output> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:binding name="Zwsb_Stock_Overview_St_Loc_soap12" type="tns:zwsd_stock_overview_st_loc"> <wsp:Policy> <wsp:PolicyReference URI="#BN__Zwsb_Stock_Overview_St_Loc_soap12"/> </wsp:Policy> <wsoap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <wsdl:operation name="ZgvfStockOverview01P"> <wsoap12:operation soapAction="urn:sap-com:document:sap:soap:functions:mc-style:zwsd_stock_overview_st_loc:ZgvfStockOverview01PRequest" style="document"/> <wsdl:input> <wsoap12:body use="literal"/> </wsdl:input> <wsdl:output> <wsoap12:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="ZS_Stock_Overview_Storage_Locati"> <wsdl:port name="Zwsb_Stock_Overview_St_Loc" binding="tns:Zwsb_Stock_Overview_St_Loc"> <soap:address location="http://gdc0adsap02.benelux.local:8020/sap/bc/srt/rfc/sap/zwsd_stock_overview_st_loc/200/zs_stock_overview_storage_locati/zwsb_stock_overview_st_loc"/> </wsdl:port> <wsdl:port name="Zwsb_Stock_Overview_St_Loc_soap12" binding="tns:Zwsb_Stock_Overview_St_Loc_soap12"> <wsoap12:address location="http://gdc0adsap02.benelux.local:8020/sap/bc/srt/rfc/sap/zwsd_stock_overview_st_loc/200/zs_stock_overview_storage_locati/zwsb_stock_overview_st_loc"/> </wsdl:port> </wsdl:service> </wsdl:definitions>
asked
3 answers
0

Have you tried to override the location (based on a constant) in your webservice call?

answered
0

Changing the WSDL solved my problem!

I think a configuration change in SAP will prevent me to change the WSDL!

http://scn.sap.com/community/pi-and-soa-middleware/blog/2010/03/19/wsdl-wspolicy--what-is-it-und-how-can-i-get-rid-of-it-in-pi

answered
0

Your wsdl is referencing a ws-policy. If you look at the policy details you'll see a reference to an artifact: <sp:httpstoken>

Having the artifact HttpsToken enforces with the wsdl that you can only use the service through an https connection (and some other requirements).
As the url to your SAP instructs a workaround is to disable the ws-policy in SAP. This will basically change the wsdl so that the policy is no longer specified, allowing the Mx app to setup the connection over an http connection.

I don't have experience with these settings in SAP, so I'm unsure if SAP also enforces this strictly on their end. You could try and manually alter the wsdl and remove the references to the policy (just remove the policy elements from the binding).

However a better solution would be to follow or change the policy.

answered