براوزر د هویت چمتو کوونکي ته رسيږي، بیا ننوتل هغه وخت ناکام شي چې اپلیکیشن بیرته راګرځېدلی اجازه کوډ تبادله کړي. دا تبادله د اپلیکیشن سرور څخه وتونکې غوښتنه ده، چې خپل HTTP کلاینټ لري.

د Spring Security 6.5 کې شته د RestClient پر بنسټ API لپاره، د اجازه کوډ ټوکن ځواب کلاینټ ته د پروکسي پوه غوښتنې فابریکه ورکړئ:

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

د کنورټر او د خطا سمبالښت ټولګي د Spring Security مستند شوي ټوکن غوښتنې چلند ساتي. یو عمومي RestClient چې یوازې د یوې بې اړیکې JSON API لپاره تنظیم شوی، مساوي بدیل نه دی.

هماغه tokenClient په موجوده امنیتي تنظیم کې ونښلوئ:

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

دا د تنظیم ټوټې دي، د هغه اپلیکیشن لپاره چې دمخه کلاینټ ثبت او SecurityFilterChain لري. دوی پرته له تصدیق HTTP پروکسي غوره کوي؛ هغه پروکسي چې اعتبارنامې غواړي، د غوره شوي انتقال اړوند تصدیق تنظیم ته اړتیا لري. د اجازه ورکړل شوي عامه لارې په عامه توګه د لاسرسي وړ HTTPS ټوکن پای نقطې لپاره، د HTTP پروکسي لیست څخه HTTP ننوتنه کولی شي هغه بې حسابه پروکسي پته ډکه کړي.

د پروکسي کوربه د هغې پورټ او URL سکیم څخه جلا وساتئ. د هویت چمتو کوونکي ټوکن URI د هدف په توګه پرېږدئ. دا بېلګه د سند تصدیق بدل نه کړئ.

وروسته غوښتنې خپل مالکیت چیک ته اړتیا لري. UserInfo راوړل، د تازه کولو ټوکن تبادلې، client-credentials مرستې او د ساتل شوي API غوښتنې کولی شي نور کلاینټ توکي وکاروي. هغه عملیات چې لاره هم غواړي، د هغې لپاره اړوند ملاتړ شوی کلاینټ تنظیم کړئ. د Spring Security 6.5 د غبرګوني client_credentials بهیر لپاره، غبرګونی ټوکن کلاینټ او د هغې مرستې چمتو کوونکی جلا تنظیم کړئ.

هغه زاړه بېلګې چې OAuth2RestTemplate او AccessTokenProvider کاروي، د زاړه Spring Security OAuth پروژې پورې اړه لري. د کوډ تطبیق مخکې هغه API وټاکئ چې نصب شوی اپلیکیشن یې کاروي؛ هغه توکي په دې تنظیم کې مه ګډوئ.

اړوندې مقالې