@GET
  @Path("/authorize")
  @JiveSignatureValidation
  public Response authorize(@Context HttpServletRequest request, @Context UriInfo uriInfo) {

    String instanceID = "TODO"; // TODO: HEADER PARAM / QUERY PARAM
    String userID = "TODO"; // TODO: HEADER PARAM / QUERY PARAM

    // TODO: CAPTURE THE JIVE ID FROM SIGNED FETCH HEADERS

    ConsumerCredentials consumerCredentials =
        new ConsumerCredentials(serviceConfig.getClientID(), serviceConfig.getClientSecret());
    OAuth1AuthorizationFlow flow =
        OAuth1ClientSupport.builder(consumerCredentials)
            .authorizationFlow(
                serviceConfig.getRequestTokenUrl(),
                serviceConfig.getAccessTokenUrl(),
                serviceConfig.getAuthorizeUrl())
            .callbackUri(uriInfo.getBaseUri() + "oauth/" + SERVICE_NAME + "/callback")
            .build();

    String authorizationUrl = flow.start();

    try {
      URI authorizationUri = new URI(authorizationUrl);

      /** LOAD INTO SESSION FOR FOLLOW-UP HIT * */
      request.getSession().setAttribute(getFlowSessionKey(), flow);
      request.getSession().setAttribute(getInstanceIDSessionKey(), instanceID);
      request.getSession().setAttribute(getUserIDSessionKey(), userID);

      // *** NOTE: 303 "See Other" NEEDED FOR JERSEY FLOW TO PICK UP
      return Response.seeOther(authorizationUri).build();
    } catch (URISyntaxException use) {
      log.error("Invalid Authorization URI: " + authorizationUrl);
      return Response.serverError().entity("Unable to Process this Request").build();
    } // end try/catch
  } // end authorize