`
ssxxjjii
  • 浏览: 938639 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

分享到:
评论
1 楼 fire_wang 2011-02-15  
将core作为一个jar从eclipse中导出,oAuth-core.jar
打包打不了,请教

相关推荐

    Spring security oauth源码

    Spring Security OAuth 是一个用于保护RESTful Web服务的框架,它为OAuth 1.0a和OAuth 2.0协议提供了全面的支持。在这个源码中,我们可能会看到如何将Spring Security与OAuth结合,以构建安全的Web应用程序和服务。...

    Shiro集成OAuth2

    Apache Shiro是一个强大的Java安全框架,它提供了身份验证、授权、会话管理和加密等功能,而OAuth2则是一种开放标准,用于授权第三方应用访问用户资源。将Shiro与OAuth2集成,可以实现更灵活的安全控制,特别是在...

    完整Oauth 2.0实现实例

    OAuth 2.0 是一种广泛使用的授权框架,它允许第三方应用在用户许可的情况下访问其私有资源。在本文中,我们将深入探讨 OAuth 2.0 的核心概念,并结合 Java 实现来理解其工作原理。 OAuth 2.0 主要分为四个角色:...

    jmeter 实现oauth1.0授权认证

    在本文中,我们将深入探讨如何使用Apache JMeter进行OAuth 1.0授权认证。OAuth 1.0是一种授权协议,允许第三方应用安全地访问用户在另一服务上的资源,而无需获得用户的用户名和密码。JMeter是一款强大的性能测试...

    cas3.5.0集成oauth2.0协议

    **OAuth2.0协议概述** OAuth2.0是一种授权框架,允许第三方应用在用户许可的情况下,访问特定资源。它主要用于安全地实现用户数据的共享,比如社交媒体登录、云存储服务等。OAuth2.0的核心是将用户的授权过程与实际...

    oauth-signpost开源项目

    OAuth Signpost是一个专门为Java开发者设计的开源库,它简化了OAuth协议的实现,使得开发者能够更轻松地在自己的应用程序中集成OAuth授权功能。OAuth是一种开放标准,主要用于安全地授权第三方应用访问用户存储在另...

    php-oauth一个简单的oauth实现

    OAuth让应用开发者可以在不获取用户密码的情况下,为用户提供一种安全的方式去授权第三方应用访问他们的资源。在PHP中实现OAuth,我们可以使用一些现有的库,例如这个例子中的"php-oauth"。 在PHP中实现OAuth,我们...

    oauth20源代码

    OAuth 2.0 是一种广泛使用的开放网络授权协议,它允许第三方应用安全地访问用户存储在其他服务上的数据,而无需获取用户的登录凭据。这个压缩包文件包含的是 OAuth 2.0 的服务端和客户端的源代码,这对于理解OAuth ...

    djangooauthtoolkit为Django用户准备的OAuth2

    【标题】:“djangooauthtoolkit为Django用户准备的OAuth2”是指一个名为“django-oauth-toolkit”的Python库,它专门用于在Django框架中实现OAuth2协议,帮助开发者为他们的Web应用添加安全的身份验证和授权功能。...

    oauth jersey实现例子

    在这个"oauth jersey实现例子"中,我们将探讨如何结合OAuth和Jersey构建安全的RESTful API。 首先,OAuth的核心概念包括资源所有者(Resource Owner)、客户端(Client)、授权服务器(Authorization Server)和...

    OAuth2.0协议中文版

    OAuth 2.0 协议中文译本共分为九大部分,分别介绍了 OAuth 2.0 协议的背景知识、术语中英对照表、OAuth 2.0 协议的中文译本、OAuth 2.0 协议的工作流程、OAuth 2.0 协议的安全机制、OAuth 2.0 协议的优点、OAuth 2.0...

    基于Django2.1.2的OAuth2.0授权登录

    **基于Django 2.1.2的OAuth2.0授权登录详解** OAuth2.0是一种开放标准,用于授权第三方应用访问用户存储在另一服务提供商(如社交媒体网站)上的私有资源,而无需共享用户的登录凭证。在Django框架中实现OAuth2.0...

    springboot集成oauth2.0

    SpringBoot集成OAuth2.0是将流行的OAuth2.0安全框架与SpringBoot应用程序相结合的过程,以便为API和Web应用提供安全的访问控制。OAuth2.0是一个授权框架,允许第三方应用在用户授权的情况下访问其受保护的资源,而...

    微信oauth2.0授权

    微信OAuth2.0授权是一种广泛应用于移动应用和网站的第三方登录解决方案,主要目的是为了安全地获取用户的微信身份标识——openid,以便提供个性化服务或者与其他微信功能集成。在本文中,我们将详细探讨微信OAuth2.0...

    Python-Authlib是一个实现OAuth1OAuth2身份验证的客户端和服务端

    `Python-Authlib` 是一个强大的库,专门设计用于实现OAuth 1和OAuth 2协议的客户端和服务端身份验证。OAuth 是开放标准,主要用于授权第三方应用访问用户资源,而无需分享其用户名和密码。这个库由 `lepture` 创建,...

    springboot+oltu.oauth2搭建oauth2环境

    springboot和apache的开源项目org.apache.oltu.oauth2组合搭建的oauth2环境,一般的oauth配置下就可以用了,但是我这个项目,是用原理上讲如何搭建oauth2,哪个controller转发到哪个controller,为什么这样,都有...

    spring-security-oauth2源码

    Spring Security OAuth2 是一个强大的框架,用于为Java应用提供OAuth2和OpenID Connect安全功能。OAuth2是一个授权框架,允许第三方应用在用户许可的情况下访问其受保护的资源,而OpenID Connect则是在OAuth2之上...

    纯java实现的OAuth2流程

    在这个"纯Java实现的OAuth2流程"中,我们将深入探讨如何不依赖Spring Boot来独立构建OAuth2的客户端和服务端。 首先,我们要理解OAuth2的基本流程,它通常包括四个角色:资源所有者(Resource Owner)、资源服务器...

    Oauth2.0 协议 服务端 客户端 thinkphp5.0

    OAuth2.0是一种广泛使用的开放授权协议,它允许第三方应用在用户无需透露其登录凭证的情况下,获取有限的访问权限去操作用户的资源。这个协议的主要目的是为了解决API的安全访问问题,尤其是在社交媒体、云存储和...

    Java的oauth2.0 服务端与客户端的实现 (完整源码、demo)

    Java的oauth2.0 服务端与客户端的实现.zip 封装了oauth2.0的基本架构和实现,对照我的博客http://blog.csdn.net/jing12062011/article/details/78147306使用该源码。 下载项目压缩包,解压,里面两个maven项目:...

Global site tag (gtag.js) - Google Analytics