如何从休息服务验证用户

时间:2013-12-17 16:44:04

标签: java security authentication dropwizard

我正在尝试使用我使用drop wizard构建的REST服务对用户进行身份验证。从以前的问题我发现在github上使用openID进行身份验证的很好的例子:https://github.com/gary-rowe/DropwizardOpenID

但是,我现在不想处理openID而只是希望用户1.注册,2。登录

我的问题/困惑是:

  1. 对于注册:我正在考虑将用户的用户名/密码作为POST请求发送,其中包含凭据作为表单参数或JSON正文的一部分。但是,以纯文本方式发送密码不存在安全风险吗?

  2. 对于Sing-in,我正在考虑在Dropwizard中使用Authenticator

  3. 我不想以纯文本格式存储密码。在用POST中的用户密码作为纯文本后,我应该遵循什么策略?我正在寻找一些可以帮助密码盐和MD5

  4. 的java库

2 个答案:

答案 0 :(得分:1)

查看文档,我们可以看到Dropwizard支持独立的OAuth2实现:

http://dropwizard.codahale.com/manual/auth/#oauth2

OAuth2有几个优点,其中许多可以在这里阅读:OAuth 2.0: Benefits and use cases — why?

注意事项:

  • 在处理身份验证时,您应始终通过HTTPS托管以确保传输加密
  • Dropwizard声称他们的OAuth2实施尚未最终确定,并可能在未来发生变化。作为后退,它们也支持Basic auth,当通过HTTPS使用时仍然相当安全。
  • 实施此操作不涉及使用任何第三方“社交”身份验证服务,例如Google或Facebook。

答案 1 :(得分:1)

感谢您对Dropwizard OpenID项目的大喊大叫。很高兴它能让你入门。

如果您需要纯Web表单类型方法,请查看我的另一个项目MultiBit Merchant,它提供了多种身份验证方法(Web表单,HMAC,cookie)。

你需要深入挖掘,才能真正看到它的工作原理,因为这个项目不是作为一个演示而设计的,而且正在进行中。

加载项目后,查找WebFormClientAuthenticator,它会让您进入正确的区域。

Dropwizard身份验证涉及的一般原则are discussed in this blog article。虽然它针对HMAC,但您可以使用前面引用的源代码轻松地将其调整为Web表单或cookie。

这都是麻省理工学院的许可证,所以只需根据需要使用它。