Je tente de tester les interactions avec un serveur Nexus nécessitant une authentification pour les opérations que j'utilise, mais je dois également gérer un serveur proxy interne.Gestion de l'authentification et des serveurs proxy avec httplib2
Basé sur ma compréhension (limitée) je peux ajouter plusieurs gestionnaires à l'ouvreur. Cependant, je reçois toujours une réponse 401. J'ai vérifié que le nom d'utilisateur et le mot de passe sont valides. Je ne suis pas certain si les cookies sont nécessaires pour le faire et si oui, comment ils seraient inclus. Des suggestions?
baseUrl = 'server:8070/nexus-webapp-1.3.3/service/local'
params = {"[key]":"[value]"}
data = urllib.urlencode(params)
# create a password manager
password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
# Add the username and password as supplied
password_mgr.add_password(None, baseUrl, username, password)
handler = urllib2.HTTPBasicAuthHandler(password_mgr)
proxy_support = urllib2.ProxyHandler({})
# create "opener" (OpenerDirector instance)
opener = urllib2.build_opener(proxy_support, handler)
urllib2.install_opener(opener)
txheaders = {'User-agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'}
req = Request(protocol+url, data, txheaders)
handle = urlopen(req)
C'est le champ de URLError résultant en-têtes:
>HTTPMessage: Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=B4BD05C9582F7B27495CBB675A339724; Path=/nexus-webapp-1.3.3
WWW-Authenticate: NxBASIC realm="Sonatype Nexus Repository Manager API"
Content-Type: text/html;charset=utf-8
Content-Length: 954
Date: Fri, 03 Jul 2009 17:38:42 GMT
Connection: close
Mise à jour Il semble Nexus mettre en œuvre une version personnalisée de Restlet's AuthenticationHelper. Merci à Alex, je savais quoi chercher.
merci Alex, mis à jour la question –
... et voir les en-têtes, il est facile de confirmer ma suspicion que vous N'obtenez pas une demande d'authentification de base, voir ma réponse éditée. –