コード例 #1
0
 /**
  * Gets the login url.
  *
  * @return the login url
  */
 public static String getLoginUrl() {
   OAuthService service = getService();
   Token token = service.getRequestToken();
   Logger.info("Request Token - " + token.getToken() + " with secret " + token.getSecret());
   Cache.add(token.getToken(), token.getSecret());
   return service.getAuthorizationUrl(token);
 }
コード例 #2
0
  /*
   * (non-Javadoc)
   *
   * @see
   * javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest
   * , javax.servlet.http.HttpServletResponse)
   */
  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp)
      throws ServletException, IOException {

    log.info("GET got parameters: " + req.getParameterMap());
    log.info("HTTP Session: " + req.getSession().getAttributeNames());

    HttpSession httpsession = req.getSession();

    try {

      OAuth2Provider provider =
          OAuth2Provider.valueOf((String) httpsession.getAttribute("oauth.service"));
      log.info("Got provider: " + provider);

      String oauthVerifier = "";
      Token requestToken = null;
      Token accessToken = new Token("", provider.getSecret());
      OAuthService service = provider.getOAuthService();

      if (provider.getApi() instanceof DefaultApi20) {
        oauthVerifier = req.getParameter("code");
        log.info("got OAuth 2.0 authorization code: " + oauthVerifier);

      } else if (provider.getApi() instanceof DefaultApi10a) {
        oauthVerifier = req.getParameter("oauth_verifier");
        log.info("got OAuth 1.0a verifier: " + oauthVerifier);
        requestToken =
            req.getParameter("oauth_token") != null
                ? new Token((String) req.getParameter("oauth_token"), provider.getSecret())
                : (Token) httpsession.getAttribute("oauth.requestToken");
      }

      Verifier verifier = new Verifier(oauthVerifier);
      accessToken = service.getAccessToken(requestToken, verifier);
      log.info(
          "Got a OAuth access token: " + accessToken.getToken() + ", " + accessToken.getSecret());

      Cookie accessTokenCookie = new Cookie("oauth.accessToken", accessToken.getToken());
      accessTokenCookie.setMaxAge(14 * 24 * 60 * 60);
      accessTokenCookie.setPath("/");
      resp.addCookie(accessTokenCookie);
      Cookie serviceCookie = new Cookie("oauth.service", provider.toString());
      serviceCookie.setPath("/");
      serviceCookie.setMaxAge(14 * 24 * 60 * 60);
      resp.addCookie(serviceCookie);
      Cookie secretCookie = new Cookie("oauth.secret", accessToken.getSecret());
      secretCookie.setPath("/");
      secretCookie.setMaxAge(14 * 24 * 60 * 60);
      resp.addCookie(secretCookie);

      resp.sendRedirect((String) req.getSession().getAttribute("http.referer"));

    } catch (Exception e) {
      log.log(Level.WARNING, e.getLocalizedMessage(), e);
    }
  }
コード例 #3
0
  @Betamax(tape = "EtsyAPILibraryTape")
  @Test
  public void testRetrieveAccessToken() {
    authenticate();

    Token accessTokenBefore = requestManager.getAccessToken();
    assertEquals(true, requestManager.retrieveAccessToken());
    Token accessTokenAfter = requestManager.getAccessToken();

    assertEquals(accessTokenBefore.getToken(), accessTokenAfter.getToken());
    assertEquals(accessTokenBefore.getSecret(), accessTokenAfter.getSecret());
  }
コード例 #4
0
 @Test
 public void shouldExtractTokenFromOAuthStandardResponse() {
   String response = "oauth_token=hh5s93j4hdidpola&oauth_token_secret=hdhd0244k9j7ao03";
   Token extracted = extractor.extract(response);
   assertEquals("hh5s93j4hdidpola", extracted.getToken());
   assertEquals("hdhd0244k9j7ao03", extracted.getSecret());
 }
コード例 #5
0
    @Override
    protected Void doInBackground(String... verifier) {

      Verifier v = new Verifier(verifier[0]);

      // save this token for practical use.
      Token accessToken = service.getAccessToken(requestToken, v);

      OAuthRequest request =
          new OAuthRequest(Verb.GET, "http://api.openstreetmap.org/api/capabilities");
      service.signRequest(accessToken, request);
      Response response = request.send();

      Log.i("TakeABreak", response.getBody());

      SharedPreferences.Editor editor = settings.edit();

      editor.putString("accessToken", accessToken.getToken());
      editor.putString("accessSecret", accessToken.getSecret());

      // The requestToken is saved for use later on to verify the OAuth request.
      // See onResume() below
      editor.putString("requestToken", requestToken.getToken());
      editor.putString("requestSecret", requestToken.getSecret());

      editor.commit();
      mCallback.onSuccess();

      return null;
    }
コード例 #6
0
 @Test
 public void shouldExtractTokenFromResponseWithCallbackConfirmed() {
   String response =
       "oauth_token=hh5s93j4hdidpola&oauth_token_secret=hdhd0244k9j7ao03&callback_confirmed=true";
   Token extracted = extractor.extract(response);
   assertEquals("hh5s93j4hdidpola", extracted.getToken());
   assertEquals("hdhd0244k9j7ao03", extracted.getSecret());
 }
コード例 #7
0
  private String getSignature(OAuthRequest request, Token token) {
    config.log("generating signature...");
    String baseString = api.getBaseStringExtractor().extract(request);
    String signature =
        api.getSignatureService()
            .getSignature(baseString, config.getApiSecret(), token.getSecret());

    config.log("base string is: " + baseString);
    config.log("signature is: " + signature);
    return signature;
  }
コード例 #8
0
 public OAuthToken getRequestToken(String clientId, String clientSecret) {
   OAuthService service =
       new ServiceBuilder()
           .provider(LinkedInApi.class)
           .apiKey(clientId)
           .apiSecret(clientSecret)
           .build();
   Token requestToken = service.getRequestToken();
   OAuthToken result = new OAuthToken();
   result.setToken(requestToken.getToken());
   result.setTokenSecret(requestToken.getSecret());
   return result;
 }
コード例 #9
0
ファイル: RMIImpl.java プロジェクト: pedrocb/SD-BD-Project
 public boolean createTumblrUser(String oauth_token, String oauth_verifier)
     throws RemoteException, SQLException {
   Verifier verifier = new Verifier(oauth_verifier);
   Token accessToken = RMIServer.service.getAccessToken(RMIServer.request_token, verifier);
   String user_token = accessToken.getToken();
   String user_secret = accessToken.getSecret();
   Token newToken = new Token(user_token, user_secret);
   OAuthRequest request = new OAuthRequest(Verb.GET, "https://api.tumblr.com/v2/user/info");
   request.addHeader("Accept", "application/json");
   RMIServer.service.signRequest(newToken, request);
   System.out.println(request.getHeaders().keySet());
   org.scribe.model.Response response = request.send();
   JSONObject jsonresponse = new JSONObject(response.getBody());
   String name = jsonresponse.getJSONObject("response").getJSONObject("user").getString("name");
   ResultSet resultSet =
       connection
           .createStatement()
           .executeQuery("select * from users where username = \"" + name + "\"");
   if (resultSet.next()) {
     connection
         .createStatement()
         .execute(
             "update users set userToken = \""
                 + user_token
                 + "\" , userSecret = \""
                 + user_secret
                 + "\" where username = \""
                 + name
                 + "\"");
   } else {
     connection
         .createStatement()
         .execute(
             "insert into users (username,password, balance , userToken, userSecret) values (\""
                 + name
                 + "\","
                 + "\"tumblr\","
                 + 100
                 + ", "
                 + "\""
                 + user_token
                 + "\", "
                 + "\""
                 + user_secret
                 + "\")");
   }
   return true;
 }
コード例 #10
0
 public void testOAuthCredential() {
   OAuthCredential credential = new OAuthCredential(REQUEST_TOKEN, TOKEN, VERIFIER, TYPE);
   assertEquals(TOKEN, credential.getToken());
   assertEquals(VERIFIER, credential.getVerifier());
   assertEquals(TYPE, credential.getProviderType());
   Token requestToken = credential.getRequestToken();
   assertEquals(TOKEN, requestToken.getToken());
   assertEquals(SECRET, requestToken.getSecret());
   // test serialization
   byte[] bytes = CommonHelper.serialize(credential);
   OAuthCredential credential2 = (OAuthCredential) CommonHelper.unserialize(bytes);
   assertEquals(credential.getRequestToken().toString(), credential2.getRequestToken().toString());
   assertEquals(credential.getToken(), credential2.getToken());
   assertEquals(credential.getVerifier(), credential2.getVerifier());
   assertEquals(credential.getProviderType(), credential2.getProviderType());
 }
コード例 #11
0
  public static void authenticateEvernote(
      RenderRequest renderRequest, PortletSession portletSession, ThemeDisplay themeDisplay)
      throws OAuthException {

    HttpServletRequest request = PortalUtil.getHttpServletRequest(renderRequest);
    String authorizationUrl = StringPool.BLANK;

    try {

      OAuthService service = getOAuthService(request, themeDisplay);

      if (PortalUtil.getOriginalServletRequest(request).getParameter(OAUTH_VERIFIER) == null) {
        // Send an OAuth message to the Provider asking for a new Request
        // Token because we don't have access to the current user's account.
        Token scribeRequestToken = service.getRequestToken();

        portletSession.setAttribute(REQUEST_TOKEN, scribeRequestToken.getToken());
        portletSession.setAttribute(REQUEST_TOKEN_SECRET, scribeRequestToken.getSecret());

        authorizationUrl = EVERNOTE_SERVICE.getAuthorizationUrl(scribeRequestToken.getToken());

      } else {
        // Send an OAuth message to the Provider asking to exchange the
        // existing Request Token for an Access Token
        Token scribeRequestToken =
            new Token(
                portletSession.getAttribute(REQUEST_TOKEN).toString(),
                portletSession.getAttribute(REQUEST_TOKEN_SECRET).toString());

        Verifier scribeVerifier =
            new Verifier(
                PortalUtil.getOriginalServletRequest(request).getParameter(OAUTH_VERIFIER));

        Token scribeAccessToken = service.getAccessToken(scribeRequestToken, scribeVerifier);

        EvernoteAuth evernoteAuth =
            EvernoteAuth.parseOAuthResponse(EVERNOTE_SERVICE, scribeAccessToken.getRawResponse());

        portletSession.setAttribute(ACCESS_TOKEN, evernoteAuth.getToken());
      }

    } catch (Exception e) {
      throw new OAuthException(e);
    }

    renderRequest.setAttribute(AUTHORIZATION_URL, authorizationUrl);
  }
コード例 #12
0
  public OAuthToken getAccessToken(
      String clientId, String clientSecret, String authorizationCode, OAuthToken requestToken) {
    OAuthToken token = null;

    try {
      OAuthService service =
          new ServiceBuilder()
              .provider(LinkedInApi.class)
              .apiKey(clientId)
              .apiSecret(clientSecret)
              .build();
      Verifier verifier = new Verifier(authorizationCode);
      Token reqToken = new Token(requestToken.getToken(), requestToken.getTokenSecret());
      Token accessToken = service.getAccessToken(reqToken, verifier);
      token = new OAuthToken();
      token.setToken(accessToken.getToken());
      token.setTokenSecret(accessToken.getSecret());
    } catch (Exception e) {
      log.error("Error getting AccessToken", e);
    }

    return token;
  }
コード例 #13
0
  /** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    if (request.getParameter("oauth_problem") != null) {
      if (request.getParameter("oauth_problem").equals("user_refused"))
        response.sendRedirect("refuse.html");
    } else {
      OAuthService service;
      Token requestToken, accessToken;
      OAuthRequest requestLink;
      org.scribe.model.Response responseLink;
      DBHandler db = new DBHandler();

      service =
          new ServiceBuilder()
              .provider(LinkedInApi.class)
              .apiKey("754z46slfke0xm")
              .apiSecret("Jm46YNdPTb2toxoY")
              .build();

      String oAuthToken = request.getParameter("oauth_token");
      String oAuthVerifier = request.getParameter("oauth_verifier");

      String[] data = db.getData(oAuthToken);
      String oAuthSecret = data[1];
      String roomId = data[2];
      String email = data[3];

      requestToken = new Token(oAuthToken, oAuthSecret);

      Verifier v = new Verifier(oAuthVerifier);
      accessToken = service.getAccessToken(requestToken, v);

      System.out.println("\n\n\n\n\n" + accessToken + "\n\n\n\n\n");

      db.setAccessData(email, accessToken.getToken(), accessToken.getSecret());

      requestLink = new OAuthRequest(Verb.GET, "https://api.linkedin.com/v1/people/~?format=json");
      service.signRequest(accessToken, requestLink); // the access token
      // from step 4
      responseLink = requestLink.send();

      if (responseLink.getCode() != 401) {
        JSONObject j1 = new JSONObject(responseLink.getBody());

        TeamchatAPI api = WebAppTeamChatAPI.getTeamchatAPIInstance(getServletConfig());
        api.perform(
            api.context()
                .byId(roomId)
                .post(
                    new PrimaryChatlet()
                        .setQuestionHtml(
                            "Now you are authorized to send linkedin updates from teamchat"
                                + "<br/><b>Use following keywords -</b><br/><ul>"
                                + "<li>'profile' - Get Profile Information</li>"
                                + "<li>'post' - Post on LinkedIn</li></ol>"
                                + "<li>'reset' - Remove your account from teamchat</li></ul>")));

        request.setAttribute("name", j1.getString("firstName") + " " + j1.getString("lastName"));
        RequestDispatcher rd = request.getRequestDispatcher("Auth.jsp");
        rd.forward(request, response);
      } else response.sendRedirect("error.html");
    }
  }
コード例 #14
0
  @Test
  public void test() throws Exception {
    // Create an appropriately sized blocking queue
    BlockingQueue<String> queue = Queues.newLinkedBlockingQueue();

    // Define our endpoint: By default, delimited=length is set (we need this for our processor)
    // and stall warnings are on.
    UserstreamEndpoint endpoint = new UserstreamEndpoint();
    endpoint.stallWarnings(false);

    final Token appToken =
        new Token(
            "NtGAPn05Q74N0sQrAnjvJrU7z", "7sjmEWkQ68yATYjd9GI2oJ4kebTqp0vfi9J0WHIOfFH3XaOfhV");
    final Token accessToken =
        new Token(
            "4235420180-wR8ylQuJh22hh02XJVgHeGdJxWpQIan8SOiVa7s",
            "yVeJHBYwKMB4DzQ997rG8lRZh1kymvf0F0hAoEsdJbh6X");
    Authentication auth =
        new OAuth1(
            appToken.getToken(),
            appToken.getSecret(),
            accessToken.getToken(),
            accessToken.getSecret());
    // Authentication auth = new com.twitter.hbc.httpclient.auth.BasicAuth(username, password);

    final BlockingQueue<Event> events = Queues.newLinkedBlockingQueue();
    // Create a new BasicClient. By default gzip is enabled.
    BasicClient client =
        new ClientBuilder()
            .name("sampleExampleClient")
            .hosts(Constants.USERSTREAM_HOST)
            .endpoint(endpoint)
            .authentication(auth)
            .processor(new StringDelimitedProcessor(queue))
            .eventMessageQueue(events)
            .build();

    // Establish a connection
    client.connect();

    // Do whatever needs to be done with messages
    for (int msgRead = 0; msgRead < 5; msgRead++) {
      if (client.isDone()) {
        System.out.println(
            "Client connection closed unexpectedly: " + client.getExitEvent().getMessage());
        break;
      }

      String msg = queue.poll(5, TimeUnit.SECONDS);
      if (msg == null) {
        System.out.println("Did not receive a message in 5 seconds");
      } else if (msgRead != 0) {
        final ObjectMapper mapper = new ObjectMapper();
        final TwitterData twitterData = mapper.readValue(msg, TwitterData.class);
        System.out.println(msg);
      }
    }

    client.stop();

    // Print some stats
    System.out.printf("The client read %d messages!\n", client.getStatsTracker().getNumMessages());
  }
コード例 #15
0
ファイル: OAuthTokenScribe.java プロジェクト: maschmid/social
 public String getSecret() {
   return delegate.getSecret();
 }