gpt4 book ai didi

java - JAX-RS Web 应用程序中的 Apache CXF OAuthDataProvider

转载 作者:行者123 更新时间:2023-12-04 04:56:13 25 4
gpt4 key购买 nike

我正在编写一个公开 REST API 的普通 JAX-RS Web 应用程序;我使用 Spring,但仅用于实际配置,并且依赖普通的 CXF 和 Hibernate 来实现所有其他功能。

我现在想使用 OAuth 1.0 保护 API 的某些部分。为此,我尝试使用 org.apache.cxf.rs.security.oauth.provider.OAuthDataProvider (连同其他一些 bean)与我的数据库一起使用。

但是,我发现文档非常不清楚,并且很难找到说明应该如何使用该 bean 的示例。具体来说,这些事情是不清楚的:

  • createAccessTokencreateRequestToken方法应该创建 token 。我大概还必须将生成的 token 持久化到数据库中。但是我必须坚持多少每个 token ?存储够吗(consumerKey, tokenId, tokenSecret)或者是否有必要也坚持例如客户端密码、回调 URI、范围等?
  • 同样,在 getAccessTokengetRequestToken ,我必须“填写”多少才能使服务生效?提供 token ID和 secret 就足够了吗,还是我真的必须提供一个完整的Client对象,等等?
  • 我在 finalizeAuthorization 中究竟需要提供什么? ?
  • 如果我跳过上述任何操作(例如,未在 getAccessToken 中设置客户端密码),我会失去一些功能吗?

  • 我对 OAuth 1.0 协议(protocol)有相当深入的了解;上述大多数问题的原因是很难辨别 CXF 为我跟踪的内容。

    最佳答案

    我同意 Writing OAuthDataProvider of OAuth 1.0 JAX-RS documentation for CXF 部分中的详细信息的文档确实很差。 .我想说 CXF 不跟踪任何东西,因为这个接口(interface)应该提供 token 创建和持久性。

    您可以完全自由地创建和持久化 token ,无论是使用内存存储还是使用直接 JDBC 或 Hibernate 进行数据库持久化。

    我建议您从以下示例中获得灵感:

  • Sample implementation (in memory)来自 CXF,也许还有它的 initial commit在沙盒中。
  • globus-oauth-demo项目

  • ...并猜测调试 session 中的剩余细节。

    希望这可以帮助

    关于java - JAX-RS Web 应用程序中的 Apache CXF OAuthDataProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16715555/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com