我正在编写一个公开 REST API 的普通 JAX-RS Web 应用程序;我使用 Spring,但仅用于实际配置,并且依赖普通的 CXF 和 Hibernate 来实现所有其他功能。
我现在想使用 OAuth 1.0 保护 API 的某些部分。为此,我尝试将org.apache.cxf.rs.security.oauth.provider.OAuthDataProvider
(连同其他一些 bean)与我的数据库一起使用。
但是,我发现文档非常不清楚,并且很难找到说明应该如何使用该 bean 的示例。具体来说,这些事情是不清楚的:
- 和方法应该创建令牌
createAccessToken
。createRequestToken
我大概还必须将生成的令牌持久化到数据库中。但是我必须坚持多少每个令牌?存储是否足够,(consumerKey, tokenId, tokenSecret)
或者是否还需要持久保存,例如客户端密码、回调 URI、范围等? - 同样,在
getAccessToken
和中getRequestToken
,我必须“填写”多少才能使服务正常工作?提供令牌 ID 和秘密就足够了吗,还是我真的必须提供整个Client
对象等等? - 我到底需要提供
finalizeAuthorization
什么? - 如果我跳过上述任何操作(例如,通过不设置客户端密码
getAccessToken
),我会失去一些功能吗?
我对 OAuth 1.0 协议有相当深入的了解;上述大多数问题的原因是很难辨别 CXF 为我跟踪的内容。