דער בלעטערער דערגרייכט דעם אידענטיטעט-סאַפּלייער, דערנאָך שלאָגט פֿעל דאָס אַרײַנלאָגירן ווען די אַפּלאַקיישאַן טוישט אויס דעם צוריקגעגעבענעם אויטאריזאציע-קאד. דער אויסטויש איז אַרויסגענדעריקע בקשה פונעם אַפּלאַקיישאַן סערווער, מיט איר אייגענעם HTTP קליענט.

פֿאַר דער RestClient-באזירטער API וואָס איז פֿאַראַן אין Spring Security 6.5, גיט דעם טאקן-ענטפער קליענט פונעם אויטאריזאציע-קאד אַ פראקסי-באוואוסטן בקשה-פֿאַבריק:

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-רופֿן קענען ניצן אַנדערע קליענט-אָביעקטן. קאָנפיגורירט דעם צוגעפּאַסטן געשטיצטן קליענט ווען יענע אָפּעראַציע דאַרף אויך די רוטע. פֿאַר דעם רעאַקטיוון client_credentials-שטראָם פֿון Spring Security 6.5, קאָנפיגורירט דעם רעאַקטיוון טאקן-קליענט און זיין געבן-סאַפּלייער באַזונדער.

עלטערע ביישפּילן מיט OAuth2RestTemplate און AccessTokenProvider געהערן צום עלטערן Spring Security OAuth פּראָיעקט. קלייבט די API וואָס די אינסטאַלירטע אַפּליקאַציע ניצט איידער איר פּאַסט אָן קאָד; מישט נישט די אָביעקטן אין דער קאָנפיגוראציע.

פֿאַרבונדענע אַרטיקלען