快速业务通道

基于OAuth安全协议的Java应用编程 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
nsumer.setProperty(OAuth.OAUTH_SIGNATURE_METHOD, OAuth.RSA_SHA1);      oauthConsumer.setProperty(RSA_SHA1.PRIVATE_KEY, privateKey);      DesktopClient client = new DesktopClient(oauthConsumer);      client.setOAuthClient(new OAuthClient(new HttpClient4()));      Collection<? extends Map.Entry> parameters =      OAuth.newList("scope","http://www.google.com/calendar/feeds/");      String accessToken = client.getAccessToken(OAuthMessage.GET,parameters);      //Make an OAuth authorized request to Google      // Initialize the variables needed to make the request      URL feedUrl = new URL(     "http://www.google.com/calendar/feeds/default/allcalendars/full");      System.out.println("Sending request to " + feedUrl.toString());      System.out.println();      GoogleService googleService = new GoogleService("cl", "oauth-sample-app");      OAuthSigner signer = new OAuthRsaSha1Signer(MyGoogleService.PRIVATE_KEY);      // Set the OAuth credentials which were obtained from the step above.      OAuthParameters para = new OAuthParameters();      para.setOAuthConsumerKey("lszhy.weebly.com");      para.setOAuthToken(accessToken);      googleService.setOAuthCredentials(para, signer);      // Make the request to Google      BaseFeed resultFeed = googleService.getFeed(feedUrl, Feed.class);      System.out.println("Response Data:");      System.out.println("==========================================");      System.out.println("|TITLE: " + resultFeed.getTitle().getPlainText());      if (resultFeed.getEntries().size() == 0) {        System.out.println("|\tNo entries found.");      } else {        for (int i = 0; i < resultFeed.getEntries().size(); i++) {          BaseEntry entry = (BaseEntry) resultFeed.getEntries().get(i);          System.out.println("|\t" + (i + 1) + ": "            + entry.getTitle().getPlainText());        }      }      System.out.println("==========================================");    }   }

小结

OAuth 协议作为一种开放的,基于用户登录的授权认证方式,目前互联网很多 Open API 都对 OAuth 提供了支持,这包括 Google, Yahoo,Twitter 等。本文以 Google 为例子,介绍了 Java 桌面程序如何开发 OAuth 认证应用。在开发桌面应用访问 Web 资源这样一类程序时,一般通行的步骤是:使用 OAuth 做认证,然后使用获得的 OAuth Access Token,通过 REST API 访问用户在服务提供方的资源。

事实上,目前 OAuth 正通过许多实现(包括针对 Java、C#、Objective-C、Perl、PHP 及 Ruby 语言的实现)获得巨大的动力。大部分实现都由 OAuth 项目维护并放在 Google 代码库 (http://oauth.googlecode.com/svn/) 上。开发者可以利用这些 OAuth 类库编写自己需要的 OAuth 应用。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号