我在此页面上阅读https://dropwizard.github.io/dropwizard/manual/auth.html可能会编写基于Auth2.0的服务,但我无法理解我该怎么做这件事。 有人可以帮帮我吗?
答案 0 :(得分:1)
有一个原因,为什么没有oauth2的例子。使用Oauh2你有一个问题。从客户端到oauth2服务器的方式已经很好地定义了,但是服务和oauth2service之间的验证可以非常自定义。这就是为什么我为此编写自己的Oauth2 Bundle和Oauth2服务提供商。这就是为什么我下面的描述只是理论!
使用您提供的链接,如果您自己验证令牌,则应该很容易实现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验证服务提供商,如谷歌,亚马逊,Instagram ......
如果Oauth2现在为你工作很多,为什么不使用HTTP基本身份验证呢?在大多数情况下,这就是一个小DW应用程序所需的全部内容。
答案 1 :(得分:1)
Here是将Dropwizard Oauth2与自定义身份验证机制一起使用的示例。