【发布时间】:2023-03-13 18:40:01
【问题描述】:
我在此页面上看到https://dropwizard.github.io/dropwizard/manual/auth.html 可以编写基于 Auth2.0 的服务,但我不明白我该怎么做。 有人可以帮助我吗?
【问题讨论】:
-
只有基本身份验证。我想学习一些例子,但我什么也没找到
标签: rest oauth-2.0 client dropwizard
我在此页面上看到https://dropwizard.github.io/dropwizard/manual/auth.html 可以编写基于 Auth2.0 的服务,但我不明白我该怎么做。 有人可以帮助我吗?
【问题讨论】:
标签: rest oauth-2.0 client dropwizard
有一个原因,为什么没有oauth2的例子。使用 Oauh2,您会遇到一个问题。从客户端到 oauth2 服务器的方式定义明确,但 service 和 oauth2service 之间的验证可以非常自定义。这就是为什么我为此编写了自己的 Oauth2 Bundle 和 Oauth2 服务提供程序。所以这就是为什么我下面的描述只是理论!
使用您提供的链接,如果您自己验证 Token,应该很容易实现 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 概述:
我根据我自己的 Oauth2 服务验证令牌,所以这就是为什么我的身份验证器非常自定义并且对您没有帮助。
如果您想验证您的 oauth2 令牌,例如Facebook,然后请阅读一些 facebook oauth2 tutorials 或任何其他教程,甚至是其他 Oauth2 验证服务提供商(如 Google、Amazon、Instagram)的教程……
如果现在 Oauth2 对您来说工作量很大,为什么不使用 HTTP 基本身份验证?在大多数情况下,这就是小型 DW 应用程序所需要的全部内容。
【讨论】:
Here 是使用带有自定义身份验证机制的 Dropwizard Oauth2 的示例。
【讨论】: