OkHttp Basic-välityspalvelimen todennus: lopeta hylätyt uudelleenyritykset
Käytä OkHttpsn proxyAuthenticatoria välityspalvelimen haasteisiin ja lopeta muuttumattoman valtuutusyrityksen toistaminen.
HTTP-välityspalvelimelle, joka tarjoaa Basic-todennuksen, OkHttpsn proxyAuthenticator voi palauttaa tunnistetietoja sisältävän pyynnön. Palauta null sen jälkeen, kun valtuutusyritys on jo hylätty, sen sijaan että lähettäisit saman vastauksen uudelleen:
.proxyAuthenticator { _, response ->
if (response.request.header("Proxy-Authorization") != null) {
null
} else {
response.request.newBuilder()
.header("Proxy-Authorization",
Credentials.basic(proxyUser, proxyPassword))
.build()
}
}
Tämä luonnos käyttää sovelluksen salaisen kokoonpanon tiliarvoja. Vartija sallii ensimmäisen yrityksen ja pysäyttää toistetun. Se toteuttaa Basicin, ei jokaista skeemaa, jonka välityspalvelin voi ilmoittaa; tutki haaste ennen kyseisen vastauksen valintaa.
Jos lopputulos on edelleen 407, vertaa valittua välityspalvelinta, ilmoitettua skeemaa ja dokumentoitua tilin identiteettiä. Hylätty salasana, tukematon menetelmä ja väärä käyttäjänimen muoto tarvitsevat erilaisia korjauksia. Säilytä nämä havainnot ja lopullinen tila redaktoidussa diagnostiikassa.
CONNECTillä on toinen takaisinkutsukonteksti: OkHttp dokumentoi synteettisen ennakkoivan välityspalvelimen todennushaasteen ennen tunnelin avaamista. Käsittele tätä kontekstia API:n mukaan sen sijaan, että olettaisit jokaisen takaisinkutsun olevan tavallinen kohdevastaus.
Erillinen authenticator on kohdepalvelimen todennusta varten. Pidä sen tunnistetiedot erillään välityspalvelimen kirjautumisesta; yleinen interceptor, joka asettaa välityspalvelimen salasanan jokaiseen lähtevään pyyntöön, voi lähettää sen väärässä laajuudessa.
Historialliset raportit kuvaavat myös toteutusvirheitä, mukaan lukien hylätyn välityspalvelimen vastauksen rungon käsittely. Kirjaa OkHttpin versio ja viimeinen vaihto ennen kuin liität nykyisen vian vanhaan raporttiin. Uudelleenyrityspäätöksen tulisi silti pysäyttää muuttumaton tunnistetietoyritys, jolla ei ole hyödyllistä uutta vastausta.