Dropwizard Auth2.0客户端实现



我在这个页面上读https://dropwizard.github.io/dropwizard/manual/auth.html,这是可能的写一个基于Auth2.0的服务,但我不明白我怎么能做到这一点。有人能帮我吗?

没有oauth2的例子是有原因的。对于Oauh2,你有一个问题。从客户机到oauth2服务器的方式已经很好地定义了,但是服务和oauth2service之间的验证可以非常自定义。这就是为什么我为此写了我自己的Oauth2 Bundle和Oauth2 Service provider。所以这就是为什么我下面的描述只是理论!

使用您提供的链接,如果您自己验证令牌,则应该很容易实现Oauth2保护的资源。

   environment.jersey().register(AuthFactory.binder(new OAuthFactory<User>(new ExampleAuthenticator(),
                                                                           "SUPER SECRET STUFF",
                                                                           User.class)));

然后使用这个注释

@GET
public SecretPlan getSecretPlan(@Auth User user) {
    return dao.findPlanForUser(user);
}

现在你必须实现你的Oauth2认证器,这是棘手的部分,因为你必须知道你的验证服务器/服务。他们中的大多数都是不同的。在大多数情况下,你必须接受提供的String-Token,然后你可以验证用户是否在Oauth2验证提供者处注册。

简短的Oauth2概述:

  1. 客户端从Oauth2服务提供商(FB, Google,…)请求令牌
  2. 客户端发送令牌到你的DW应用程序作为http认证头
  3. 您的DW应用程序可以根据您首选的oauth2服务提供商验证令牌
  4. Oauth2服务提供商检查令牌是否由自己释放,并告诉你的DW应用程序令牌是否有效,在大多数情况下(如FB),你可以访问客户端配置文件或其他。

我根据我自己的Oauth2服务验证令牌,所以这就是为什么我的身份验证器是非常自定义的,并且不能帮助您。

如果你想验证你的oauth2令牌,例如Facebook,那么请阅读一些Facebook oauth2教程或任何其他教程,甚至是其他oauth2验证服务提供商,如谷歌,亚马逊,Instagram…

如果Oauth2现在对你来说工作量太大,为什么不使用HTTP基本认证?在大多数情况下,这是一个小型DW应用程序所需要的全部内容。

下面是使用带有自定义身份验证机制的Dropwizard Oauth2的示例。

相关内容

最新更新