有没有办法在Oauth2中使用java.net.http.HttpClient?

时间:2019-06-10 13:30:03

标签: java oauth-2.0 httpclient

您好,我也从Java 11从RestTemplate切换到HttpClient。我也想从Java 11从OAuth2RestTemplate切换到HttpClient

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

这是个好主意吗?还是应该从春季开始使用WebClient

1 个答案:

答案 0 :(得分:0)

我只是使用HttpClient发布以获取OAuthToken,然后将令牌添加到下一个请求的标头中。

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