    001// License: GPL. For details, see LICENSE file.
    002package org.openstreetmap.josm.plugins.streetside.oauth;
    003
    004import java.io.BufferedReader;
    005import java.io.IOException;
    006import java.io.InputStreamReader;
    007import java.net.HttpURLConnection;
    008import java.net.URL;
    009
    010import javax.json.Json;
    011import javax.json.JsonException;
    012import javax.json.JsonObject;
    013import javax.json.JsonReader;
    014
    015import org.openstreetmap.josm.plugins.streetside.utils.StreetsideProperties;
    016
    017/**
    018* A set of utilities related to OAuth.
    019*
    020* @author nokutu
    021*
    022*/
    023public final class OAuthUtils {
    024
    025private OAuthUtils() {
    026 // Private constructor to avoid instantiation
    027}
    028
    029/**
    030* Returns a JsonObject containing the result of making a GET request with the
    031* authorization header.
    032*
    033* @param url
    034*          The {@link URL} where the request must be made.
    035* @return A JsonObject containing the result of the GET request.
    036* @throws IOException
    037*           Errors relating to the connection.
    038*/
    039public static JsonObject getWithHeader(URL url) throws IOException {
    040 HttpURLConnection con = (HttpURLConnection) url.openConnection();
    041 con.setRequestMethod("GET");
    042 con.setRequestProperty("Authorization", "Bearer " + StreetsideProperties.ACCESS_TOKEN.get());
    043
    044 try (
    045   JsonReader reader = Json.createReader(new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8")))
    046 ) {
    047   return reader.readObject();
    048 } catch (JsonException e) {
    049   throw new IOException(e);
    050 }
    051}
    052}