ပရောက်စီသို့ ဝင်ရောက်ခြင်းသည် ပို့ဆောင်မှု၏ အထောက်အထား ပံ့ပိုးသူနှင့် သက်ဆိုင်သည်။ Spring 6 နှင့် Apache HttpClient 5 အတွက် ထို အကောင့်ကို ကြားခံအထိ ကန့်သတ်ပါ။

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);

အပလီကေးရှင်းသည် proxyUser နှင့် proxyPassword တန်ဖိုးများကို ပေးပြီး HTTP client ၏ သက်တမ်းစက်ဝန်းကို ပိုင်ဆိုင်သည်။ ခေါ်ဆိုသည့်နေရာတွင် နောက်ထပ် မူလတန်ဖိုး နမူနာတစ်ခု မတည်ဆောက်ဘဲ အလုပ်ဝန်အတွက် rest ကို ပြန်လည်အသုံးပြုပါ။

AuthScope သည် ဤအထောက်အထားများ အကျုံးဝင်သည့်နေရာကို ကန့်သတ်သည်။ ဥပမာသည် သာမန် အသုံးပြုသူအမည်/စကားဝှက် အထောက်အထားများကို ပေးသည်။ BasicCredentialsProvider ဟူသော အမည်သည် စိန်ခေါ်မှုတိုင်းကို HTTP Basic အစီအစဉ် အသုံးပြုရန် မခိုင်းစေပါ။

HTTPS ဦးတည်ရာနှင့်ဆိုလျှင် အပလီကေးရှင်း၏ ကုဒ်ပြုထားသော HTTP တောင်းဆိုမှု မရှိမီ CONNECT အတွင်း ပရောက်စီ၏ စိန်ခေါ်မှုကို ပို့ဆောင်မှုက ဖြေကြားနိုင်သည်။ Proxy-Authorization ထည့်သော ယေဘုယျ ဦးတည်ရာ ကြားဖြတ်ကိရိယာသည် ထို ညှိနှိုင်းမှုနှင့် တူညီမှု မရှိပါ။

မည်သည့် ဦးတည်ရာ အကောင့်ကိုမဆို သီးခြား ပြင်ဆင်ပါ။ ပရောက်စီက တောင်းဆိုမှုကို ငြင်းပယ်နေသေးလျှင် ၎င်း ကြေညာထားသော စစ်မှန်ကြောင်း အတည်ပြုသည့် အစီအစဉ်နှင့် အမှန်တကယ် host နှင့် port ကို ထိန်းသိမ်းပါ။ အခြား အဆုံးသတ်နေရာအတွက် ကန့်သတ်ထားသော အထောက်အထားသည် စကားဝှက် မှန်သည်ဟူသော အကြောင်းကြောင့်သာ ကိုက်ညီမည် မဟုတ်ပါ။

ဆက်စပ်ဆောင်းပါးများ