2017-07-29 3 views
0

J'ai récemment appris Go et j'expérimente avec la bibliothèque net/http. J'ai essayé d'authentifier dans un site utilisant la fonction http.SetBasicAuth mais il ne semble jamais fonctionner. Cela fonctionne bien avec cURL mais pas avec Go. Je sais que cela a quelque chose à voir avec NTLM mais je ne sais pas comment résoudre le problèmeNTLM et Golang

cURL:

curl -v "http://server_that_im_trying_to_auth_with" --ntlm -u user:pass

Go:

req, _ := http.NewRequest("GET", "url", nil) 
req.SetBasicAuth(user, pass) 
resp, _ := http.DefaultClient.Do(req) 
body, _ := ioutil.ReadAll(resp.Body) 

Le corps continue de revenir le sites 401 Page.

Répondre

1

L'authentification NTLM et l'authentification de base ne sont pas identiques. NTLM est un protocole qui est plus compliqué que l'utilisateur: chaîne de mot de passe dans l'en-tête.
Si vous souhaitez faire une demande à partir du code golang pour vous authentifier devez utiliser l'une des bibliothèques existantes, comme: go-ntlmssp

vous pouvez également en savoir plus sur le protocole NTLM se here

+0

Merci beaucoup! – potato