java - 有没有办法将 java.net.http.HttpClient 与 Oauth2 一起使用?

标签 java oauth-2.0 httpclient java-http-client

您好,我从 java 11 中从 RestTemplate 切换到 HttpClient。我想从 OAuth2RestTemplate 切换到 HttpClient也从 java 11 开始。

我找不到任何有关将 HttpClient 与 OAuth2 结合使用的 Material 。有可能以简单的方式实现吗?

这是个好主意吗?或者我应该使用 spring 中的 WebClient

最佳答案

我刚刚使用 HttpClient 发布内容来获取 OAuthToken,然后将 token 添加到下一个请求的 header 中。

String tokenRequest =
        "client_id="
            + lmGatewayCorrectClientId
            + "&client_secret="
            + lmGatewayCorrectClientSecret
            + "&grant_type="
            + lmGatewayCorrectGrantType;

    HttpClient oAuth2Client = HttpClient.newBuilder().build();
    HttpRequest oAuth2Request =
        HttpRequest.newBuilder()
            .header(CONTENT_TYPE, APPLICATION_FORM_URLENCODED_VALUE)
            .uri(URI.create(lmGatewayCorrectAccessTokenUri))
            .POST(HttpRequest.BodyPublishers.ofString(tokenRequest))
            .build();

    HttpResponse<String> oAuth2Response = null;

    try {
      oAuth2Response = oAuth2Client.send(oAuth2Request, HttpResponse.BodyHandlers.ofString());
    } catch (Exception e) {
      logger.error(e.getMessage(), e);
    }

关于java - 有没有办法将 java.net.http.HttpClient 与 Oauth2 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56527414/

相关文章:

java - 我的应用程序在启动之前崩溃了。这是一个简单的应用程序,我在其中使用 Intent 来调用前一个类中的另一个类

java - 类型 SocketFactory 已弃用

c# - 有没有办法指定 .net 将使用哪个 NetworkInterface?

api - 关闭窗口,登录后重定向到旧页面[客户端程序]

C#将json序列化为class

Java重复方法合并

java - 异常和数组的问题

java - 带有 Spring Boot 和 thymeleaf 的 Spring MVC 4 - i18n 不工作

oauth-2.0 - Oauth2授权码流程: where do I store authorization code?

authentication - 从 oAuth 客户端角度看 OpenID 连接和 oAuth2 之间的区别