0
Fixed

Authentication details have not been provided

Bob Bradley 1 year ago in UNIFYBroker/Fusion5 JadeStar updated by Beau Harrison (Senior Software Engineer) 1 year ago 6

Full imports for all 3 connectors, as well as polling imports for the employees connector are now all working.  However polling imports are failing with a "Authentication details have not been provided" error for both Position and Position Occupancy as follows:

Change detection engine import changes for connector _KB_JadeStar Position Connector failed with reason The content type application/soap+xml; charset=utf-8 of the response message does not match the content type of the binding (text/xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 676 bytes of the response were: '<?xml version="1.0" encoding="UTF-8"?> <soap:envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"> <soap:body> <soap:fault> <soap:code> <soap:value>soap:Sender</soap:value> </soap:code> <soap:reason> <soap:text xml:lang="en">Error 1000 - Authentication details have not been provided.</soap:text> </soap:reason> <soap:detail> <tns:faultdetails xmlns:tns="urn:JadeWebServices/WebServiceZ2/"> <errorcode>1000</errorcode> <erroritem></erroritem> <errortext>Authentication details have not been provided.</errortext> </tns:faultdetails> </soap:detail> </soap:fault> </soap:body> </soap:envelope> '.. Duration: 00:00:00.2343790 

Is it possible that the polling messages could be malformed for 2 connectors but OK for another?

The same exception is occurring for both v4 and v5 Broker connectors talking to the same endpoint.

Thanks

Affected Versions:
Fixed by Version:

Full v5 stack trace:

Change detection engine import changes for connector _KB_JadeStar Position Connector failed with reason The content type application/soap+xml; charset=utf-8 of the response message does not match the content type of the binding (text/xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 676 bytes of the response were: '<?xml version=""1.0"" encoding=""UTF-8""?>
<soap:envelope xmlns:soap="" http:="" www.w3.org="" 2003="" 05="" soap-envelope""="">
    <soap:body>
        <soap:fault>
            <soap:code>
                <soap:value>soap:Sender</soap:value>
            </soap:code>
            <soap:reason>
                <soap:text xml:lang="" en""="">Error 1000 - Authentication details have not been provided.</soap:text>
            </soap:reason>
            <soap:detail>
                <tns:faultdetails xmlns:tns="" urn:jadewebservices="" webservicez2="" ""="">
                    <errorcode>1000</errorcode>
                    <erroritem></erroritem>
                    <errortext>Authentication details have not been provided.</errortext>
                </tns:faultdetails>
            </soap:detail>
        </soap:fault>
    </soap:body>
</soap:envelope>
'.. Duration: 00:00:00.2343790
Error details:
System.ServiceModel.ProtocolException: The content type application/soap+xml; charset=utf-8 of the response message does not match the content type of the binding (text/xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 676 bytes of the response were: '<!--?xml version=""1.0"" encoding=""UTF-8""?-->
<soap:envelope xmlns:soap="" http:="" www.w3.org="" 2003="" 05="" soap-envelope""="">
    <soap:body>
        <soap:fault>
            <soap:code>
                <soap:value>soap:Sender</soap:value>
            </soap:code>
            <soap:reason>
                <soap:text xml:lang="" en""="">Error 1000 - Authentication details have not been provided.</soap:text>
            </soap:reason>
            <soap:detail>
                <tns:faultdetails xmlns:tns="" urn:jadewebservices="" webservicez2="" ""="">
                    <errorcode>1000</errorcode>
                    <erroritem></erroritem>
                    <errortext>Authentication details have not been provided.</errortext>
                </tns:faultdetails>
            </soap:detail>
        </soap:fault>
    </soap:body>
</soap:envelope>
'. ---> System.Net.WebException: The remote server returned an error: (500) Internal Server Error.
   at System.Net.HttpWebRequest.GetResponse()
   at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
   --- End of inner exception stack trace ---

Server stack trace: 
   at System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest request, HttpWebResponse response, HttpChannelFactory`1 factory, WebException responseException, ChannelBinding channelBinding)
   at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
   at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at JSUAMWebServiceSoap.getChangedPositions(getChangedPositionsRequest request)
   at Unify.Product.IdentityBroker.ServiceWrapper.Return[TResult](Func`2 action)
   at Unify.Product.IdentityBroker.JadeStarCommunicator.GetChangedPositions(DateTime fromTimeStamp)
   at Unify.Product.IdentityBroker.JadeStarAgent.GetChangedPositions(DateTime fromTimeStamp)
   at Unify.Product.IdentityBroker.JadeStarPositionConnector.<getpositions>d__12.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at Unify.Product.IdentityBroker.AuditEntityPollingConnectorDecorator.PollEntityChanges(IStoredValueCollection changeState, CancellationToken cancellationToken)
   at Unify.Product.IdentityBroker.EventNotifierEntityPollingConnectorDecorator.PollEntityChanges(IStoredValueCollection changeState, CancellationToken cancellationToken)
   at Unify.Product.IdentityBroker.ChangeDetectionEntityPollJob.RunBase()
   at Unify.Framework.DefinedScopeJobAuditTrailJobDecorator.Run()
   at Unify.Product.IdentityBroker.ConnectorJobExecutor.<>c__DisplayClass30_0.<run>b__0()
   at Unify.Framework.AsynchronousJobExecutor.PerformJobCallback(Object state)",Normal
</run></getpositions>
+1
Under review

Hi Bob,

As part of the WSDL update, there were several functions from the new endpoint that no longer accepted authentication details where they did before. Most of these were getChanged functions. If these methods still require the auth information you'll have to get somebody to fix the WSDL before I can provide a patch.

The methods are

  • updateEmployee
  • getChangedPositions
  • getChangedOccupancies
  • getChangedCostCodeCombinations

We've just now been provided with an updated WSDL (attached).  It would be greatly appreciated if you could please provide new v4 and v5 patches (or maybe a new MSI this time?) asap.  Thanks in advance.

WSDL

+1

You will need to update the configuration for v5.3 as you did with v4.1 now, as well.

Thanks Beau - those changes have all worked for every import process now, and all I need to regression test are the exports. For now, though, this ticket can be closed thanks!