前面博客中描述的OAuth,被称为三条腿的OAuth(3-Legged OAuth),这也是OAuth的标准版本。这里所谓的“三条腿”,指的是授权过程中涉及前面提到的三种角色,也就是:消费方,服务提供者,用户。不过有 些情况下,不需要用户的参与,此时就产生了一个变体,被称作两条腿的OAuth(2-Legged OAuth),一般来说,访问私有数据的应用需要三条腿的OAuth,访问公共数据的应用需要两条腿的OAuth。
两条腿的OAuth和三条腿的OAuth相比,因为没有用户的参与,所以在流程中就不会涉及用户授权的环节,也就不需要使用Token,而主要是通 过Consumer Key和Consumer Secret来完成签名的,此时的Consumer Key和Consumer Secret基本等价于账号和密码的作用。
java中关于oauth的支持主要有:
- Apache Oltu实现了OAuth 2.0 的框架
- Agorava 是一个实现了 OAuth 1.0a 和 OAuth 2.0 的框架
- Signpost 是一个简单而且直观的使用 OAuth 1.0 规范对 HTTP 消息进行签名的 Java 解决方案
可以查看该网址获得更多: http://www.oschina.net/project/tag/307/oauth