ဘရောက်ဇာသည် အထောက်အထား ပံ့ပိုးသူထံ ရောက်ပြီး၊ ထို့နောက် အပလီကေးရှင်းက ပြန်ပေးလိုက်သော ခွင့်ပြုချက်ကုဒ်ကို လဲလှယ်သောအခါ လော့ဂ်အင် မအောင်မြင်ပါ။ ထို လဲလှယ်မှုသည် အပလီကေးရှင်း ဆာဗာမှ ထွက်သွားသော တောင်းဆိုမှုဖြစ်ပြီး ကိုယ်ပိုင် HTTP client ရှိသည်။

Spring Security 6.5 တွင် ရရှိနိုင်သော RestClient အခြေခံ API အတွက် ခွင့်ပြုချက်ကုဒ် တိုကင် တုံ့ပြန်မှု client အား proxy ကို သိသော တောင်းဆိုမှု စက်ရုံ ပေးပါ။

SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setProxy(new java.net.Proxy(
    java.net.Proxy.Type.HTTP,
    new java.net.InetSocketAddress("proxy.example", 8080)));
factory.setConnectTimeout(5000);
factory.setReadTimeout(15000);

RestClient tokenHttp = RestClient.builder()
    .requestFactory(factory)
    .messageConverters(converters -> {
        converters.clear();
        converters.add(new FormHttpMessageConverter());
        converters.add(new OAuth2AccessTokenResponseHttpMessageConverter());
    })
    .defaultStatusHandler(new OAuth2ErrorResponseErrorHandler())
    .build();

RestClientAuthorizationCodeTokenResponseClient tokenClient =
    new RestClientAuthorizationCodeTokenResponseClient();
tokenClient.setRestClient(tokenHttp);

Converter နှင့် error handler အတန်းများသည် Spring Security ၏ မှတ်တမ်းတင်ထားသော တိုကင် တောင်းဆိုမှု အပြုအမူကို ထိန်းသိမ်းသည်။ မသက်ဆိုင်သော JSON API အတွက်သာ ပြင်ဆင်ထားသော ယေဘုယျ RestClient သည် ညီမျှသော အစားထိုး မဟုတ်ပါ။

တူညီသော tokenClient ကို လက်ရှိ လုံခြုံရေး ဖွဲ့စည်းမှုတွင် ချိတ်ဆက်ပါ။

http.oauth2Login(login -> login
    .tokenEndpoint(token -> token
        .accessTokenResponseClient(tokenClient)));

၎င်းတို့သည် client မှတ်ပုံတင်ခြင်းနှင့် SecurityFilterChain ရှိပြီးသား အပလီကေးရှင်းအတွက် ဖွဲ့စည်းမှု အပိုင်းအစများ ဖြစ်သည်။ ၎င်းတို့သည် အတည်ပြုခြင်းမပါသော HTTP proxy ကို ရွေးချယ်သည်။ အထောက်အထား လိုအပ်သော proxy အတွက် ရွေးချယ်ထားသော သယ်ယူပို့ဆောင်ရေး၏ ကိုက်ညီသော အတည်ပြုခြင်း ဖွဲ့စည်းမှု လိုအပ်သည်။ ခွင့်ပြုထားသော အများသူငှာ လမ်းကြောင်းပေါ်ရှိ အများသူငှာ ရောက်ရှိနိုင်သော HTTPS တိုကင် အဆုံးမှတ်အတွက် HTTP proxy စာရင်းမှ HTTP ထည့်သွင်းချက်သည် ထို အကောင့်မလိုသော proxy လိပ်စာကို ဖြည့်နိုင်သည်။

Proxy host ကို ၎င်း၏ port နှင့် URL အစီအစဉ်မှ ခွဲထားပါ။ အထောက်အထား ပံ့ပိုးသူ၏ တိုကင် URI ကို ဦးတည်ရာနေရာအဖြစ် ထားပါ။ ဤဥပမာသည် လက်မှတ် အတည်ပြုခြင်းကို အစားထိုးခြင်း မဟုတ်ပါ။

နောက်ပိုင်း တောင်းဆိုမှုများတွင် ကိုယ်ပိုင် ပိုင်ဆိုင်မှု စစ်ဆေးမှု လိုအပ်သည်။ UserInfo ရယူခြင်း၊ refresh token လဲလှယ်ခြင်း၊ client-credentials ထောက်ပံ့ငွေများနှင့် ကာကွယ်ထားသော API ခေါ်ဆိုမှုများသည် အခြား client အရာဝတ္ထုများကို အသုံးပြုနိုင်သည်။ ထို လုပ်ငန်းစဉ်တွင်လည်း လမ်းကြောင်း လိုအပ်ပါက သက်ဆိုင်ရာ ပံ့ပိုးထားသော client ကို ပြင်ဆင်ပါ။ Spring Security 6.5 ၏ တုံ့ပြန်မှုရှိသော client_credentials စီးကြောင်းအတွက် တုံ့ပြန်မှုရှိသော တိုကင် client နှင့် ၎င်း၏ ထောက်ပံ့ငွေ ပံ့ပိုးသူကို သီးခြား ပြင်ဆင်ပါ။

OAuth2RestTemplate နှင့် AccessTokenProvider ကို အသုံးပြုသော ဟောင်းနွမ်းသော ဥပမာများသည် ပိုဟောင်းသော Spring Security OAuth ပရောဂျက်နှင့် သက်ဆိုင်သည်။ ကုဒ်ကို ပြင်ဆင်မီ ထည့်သွင်းထားသော အပလီကေးရှင်း အသုံးပြုသည့် API ကို ရွေးပါ။ ထို အရာဝတ္ထုများကို ဤ ဖွဲ့စည်းမှုတွင် မရောပါနှင့်။

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