OAuth是什么

OAuth协议致力于使网站和应用程序(统称为消费方)能够在无须用户透露其认证证书的情况下,通过API访问某个web服务(统称为服务提供方)的受保护资源。更一般地说,OAuth为API认证提供了一个可自由实现且通用的方法。

一个典型的例子是某打印服务提供商printer.example.com(消费方),希望在无须用户提供其照片存储站点密码的情况下,访问用户储存在photos.example.net(服务提供方)上的个人照片。

 

OAuth协议致力于使网站和应用程序(统称为消费方)能够在无须用户透露其认证证书的情况下,通过API访问某个web服务(统称为服务提供方)的受保护资源。更一般地说,OAuth为API认证提供了一个可自由实现且通用的方法。

在运行OAuth的web例子的时候,遇到问题的总结。

1、下载源代码

svn co http://oauth.googlecode.com/svn/code/java/ oauth-java

2、将core和example中的oauth-provider和webapp分别作为java项目导入eclipse中。   

core是一个项目   
oauth-provider是一个项目   
web是一个项目

3、将core作为一个jar从eclipse中导出,oAuth-core.jar

4、将oauth-provider以provider目录名部署到tomcat中

5、将webapp以web目录名部署到tomcat中

6、启动tomcat

7、访问 http://localhost/provider/  provider正常工作

8、访问http://localhost/web/index.jsp web正常工作

9、点击"Sample Provider",控制台提示错误信息为“java.security.NoSuchAlgorithmException: Algorithm HmacSHA1 not available”

10、修改 consumer.properties

原来的内容:sample.serviceProvider.baseURL: http://localhost:9090/oauth-provider/
修改后内容:sample.serviceProvider.baseURL: http://localhost/provider/ 
新增加一行:sample.consumer.oauth_signature_method: PLAINTEXT

oAuth目前支持HMAC_SHA1、PLAINTEXT、RSA_SHA1算法

验证的过程分别验证以下几部分内容:
oauth_token token
oauth_timestamp 
oauth_signature 
oauth_signature_method 
oauth_consumer_key 

--------------------------------------

从高层次来看,OAuth按以下方式工作:

  1. 你的站点已与不同的webmail服务供应商建立了关系。
  2. 你共享一个密码短语或者公钥,这样你就能使用它访问web联系人。
  3. 你根据webmail服务供应商将用户重定向到登录页面。
  4. 该用户登录然后告诉webmail服务供应商你的站点访问其地址薄是没问题的。

 

Ryan Heaton已经实现了针对Spring security的OAuthhttp://spring-security-oauth.codehaus.org/

支持OAuth的站点包括Twitter、Ma.gnolia与Google(你可以在这里看到关于Alpha版的帖子)。

 

-------------------------

豆瓣API OAuth认证

http://www.douban.com/service/apidoc/auth

你可能感兴趣的:(eclipse,spring,tomcat,Web,SVN)