Jag försöker köra ett curl-anrop mot en webbtjänst, men det blir bara fel. Det funkar inte från PHP och det funkar inte heller direkt ifrån CLI.
Även utvecklaren "på andra sidan", dvs de som utvecklat tjänsten förstår inte vad som är fel. Här är en anonymiserad men i övrigt komplett print out av anropet och svaret. Alla anonymiserade bitar är dubbel-trippelkollade av mig, utvecklaren på "andra sidan" samt av både ChatGPT och Grok, så allt sånt är korrekt.
Båda AI-tjänsterna, vars kunskaper man ska ta med en nypa salt, säger att användarnamn/lösenord är fel, men det är dom inte. Men likväl får vi 401 unauthorized som svar. Vi har provat med en speciell användare med ett mycket komplicerat, men regelrätt, lösenord, och även med en testanvändare med användarnamn i stil med ABC och lösenord DEF utan framgång. Jag är PHP-programmerare och kan egentligen väldigt lite om hur CURL fungerar och absolut inget om NTLM etc. När jag berättat för AI att username och password ÄR rätt, så kommer de med "det kanske är något annat" eller att man har fel verision av CURL eller att jag gör rätt och det är webbtjänsten som gör fel. Jag har ingen aning. Så egentligen skulle jag väl bara uppskatta om någon som är expert på sånt här tar en titt och kanske kan se "men DÄR är felet, dumskalle".
Även utvecklaren "på andra sidan", dvs de som utvecklat tjänsten förstår inte vad som är fel. Här är en anonymiserad men i övrigt komplett print out av anropet och svaret. Alla anonymiserade bitar är dubbel-trippelkollade av mig, utvecklaren på "andra sidan" samt av både ChatGPT och Grok, så allt sånt är korrekt.
Båda AI-tjänsterna, vars kunskaper man ska ta med en nypa salt, säger att användarnamn/lösenord är fel, men det är dom inte. Men likväl får vi 401 unauthorized som svar. Vi har provat med en speciell användare med ett mycket komplicerat, men regelrätt, lösenord, och även med en testanvändare med användarnamn i stil med ABC och lösenord DEF utan framgång. Jag är PHP-programmerare och kan egentligen väldigt lite om hur CURL fungerar och absolut inget om NTLM etc. När jag berättat för AI att username och password ÄR rätt, så kommer de med "det kanske är något annat" eller att man har fel verision av CURL eller att jag gör rätt och det är webbtjänsten som gör fel. Jag har ingen aning. Så egentligen skulle jag väl bara uppskatta om någon som är expert på sånt här tar en titt och kanske kan se "men DÄR är felet, dumskalle".
Kod:
[root@HOSTNAME ~]# curl -v \
--ntlm \
-u 'DOMAIN\USERNAME:PASSWORD' \
-H 'Company: COMPANY_NAME' \
-H 'Content-Type: application/json' \
-d '{}' \
http://SERVER_HOST:PORT/APP/ODataV4/OrderHandling_CreateOrder
* About to connect() to SERVER_HOST port PORT (#0)
* Trying PRIVATE_IP...
* Connected to SERVER_HOST (PRIVATE_IP) port PORT (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* Server auth using NTLM with user 'DOMAIN\USERNAME'
> POST /APP/ODataV4/OrderHandling_CreateOrder HTTP/1.1
> Authorization: NTLM <NTLM_TYPE1_TOKEN>
> User-Agent: curl/7.29.0
> Host: SERVER_HOST:PORT
> Accept: */*
> Company: COMPANY_NAME
> Content-Type: application/json
> Content-Length: 0
>
< HTTP/1.1 401 Unauthorized
< Content-Length: 0
< Server: Microsoft-HTTPAPI/2.0
< WWW-Authenticate: NTLM <NTLM_TYPE2_TOKEN>
< Date: Thu, DD Mon YYYY HH:MM:SS GMT
<
* Connection #0 to host SERVER_HOST left intact
* Issue another request to this URL: 'http://SERVER_HOST:PORT/APP/ODataV4/OrderHandling_CreateOrder'
* Found bundle for host SERVER_HOST: 0xXXXXXXXX
* Re-using existing connection! (#0) with host SERVER_HOST
* Connected to SERVER_HOST (PRIVATE_IP) port PORT (#0)
* Server auth using NTLM with user 'DOMAIN\USERNAME'
> POST /APP/ODataV4/OrderHandling_CreateOrder HTTP/1.1
> Authorization: NTLM <NTLM_TYPE3_TOKEN>
> User-Agent: curl/7.29.0
> Host: SERVER_HOST:PORT
> Accept: */*
> Company: COMPANY_NAME
> Content-Type: application/json
> Content-Length: 2
>
* upload completely sent off: 2 out of 2 bytes
< HTTP/1.1 401 Unauthorized
< Content-Length: 0
< Server: Microsoft-HTTPAPI/2.0
* NTLM handshake rejected
* Authentication problem. Ignoring this.
< WWW-Authenticate: NTLM
< Date: Thu, DD Mon YYYY HH:MM:SS GMT
<
* Connection #0 to host SERVER_HOST left intact
[root@HOSTNAME ~]#