Cyfyngu ar gymwysiadau proxy RestTemplate gyda HttpClient 5
Cyfyngwch gymwysiadau Apache HttpClient 5 i westeiwr a phorth y proxy cyn rhoi'r cludiant i RestTemplate Spring 6.
Mae mewngofnodi i'r proxy yn perthyn i ddarparwr cymwysiadau'r cludiant. Gyda Spring 6 ac Apache HttpClient 5, cyfyngwch y cyfrif hwnnw i'r cyfryngwr:
var proxy = new org.apache.hc.core5.http.HttpHost(
"http", "proxy.example", 8080);
var credentials = new org.apache.hc.client5.http.impl.auth
.BasicCredentialsProvider();
credentials.setCredentials(
new org.apache.hc.client5.http.auth.AuthScope(proxy),
new org.apache.hc.client5.http.auth.UsernamePasswordCredentials(
proxyUser, proxyPassword.toCharArray()));
var http = org.apache.hc.client5.http.impl.classic.HttpClients.custom()
.setProxy(proxy)
.setDefaultCredentialsProvider(credentials)
.build();
var factory = new org.springframework.http.client
.HttpComponentsClientHttpRequestFactory(http);
var rest = new org.springframework.web.client.RestTemplate(factory);Mae'r cymhwysiad yn darparu'r gwerthoedd proxyUser a proxyPassword ac yn berchen ar gylch bywyd y cleient HTTP. Ailddefnyddiwch rest ar gyfer y llwyth gwaith yn lle adeiladu templed diofyn arall yn y man galw.
Mae AuthScope yn cyfyngu ble mae'r cymhwysiad hwn yn gymwys. Mae'r enghraifft yn darparu cymwysiadau enw defnyddiwr/cyfrinair cyffredin; nid yw'r enw BasicCredentialsProvider yn gorfodi pob her i ddefnyddio'r cynllun HTTP Basic.
Gyda chyrchfan HTTPS, gall y cludiant ateb her proxy yn ystod CONNECT, cyn bod cais HTTP amgryptiedig y cymhwysiad yn bodoli. Nid yw rhyng-gipiwr cyrchfan cyffredinol sy'n ychwanegu Proxy-Authorization yn cyfateb i'r trafodaeth honno.
Ffurfweddwch unrhyw gyfrif cyrchfan ar wahân. Os yw'r proxy'n dal i wrthod y cais, cadwch ei gynllun dilysu a hysbysebir a'r gwesteiwr a'r porth effeithiol. Ni fydd cymhwysiad wedi'i gyfyngu i bwynt terfyn arall yn cyd-fynd dim ond oherwydd bod y cyfrinair yn gywir.