Хөтөч таних тэмдэг нийлүүлэгчид хүрч, дараа нь програм буцаж ирсэн зөвшөөрлийн кодыг солилцох үед нэвтрэлт бүтэлгүйтдэг. Тэр солилцоо нь програмын серверээс гарч буй хүсэлт бөгөөд өөрийн 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-ийн баримтжуулсан токен хүсэлтийн зан төлөвийг хадгална. Зөвхөн хамааралгүй JSON API-д тохируулсан ерөнхий RestClient нь тэнцүү орлуулалт биш.

Мөн 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-г сонгоорой; тэдгээр объектыг энэ тохиргоонд хольж болохгүй.

Холбоотой нийтлэлүүд