REST HTTP身份验证 - 如何?

mig*_*ain 26 java authentication web-services resteasy

所以,我正在使用RESTeasy和Google App Engine开发REST Web服务.我的问题与GAE无关,但我提到它只是在重要的情况下.事实上,我需要保护我的资源和我自己的用户(不是谷歌的).

保护REST Web服务似乎是一个非常有争议的主题,或者至少是一个非常"自由"的主题.REST没有对此事项施加任何标准.根据我在网络和文献上的研究,我认为至少有3种方法可能适用于我的应用程序:

  • HTTP Basic(使用SSL)
  • HTTP摘要(使用SSL)
  • OAuth的

OAuth似乎是最完整的方法.但我认为不需要这么复杂,因为我不需要授权任何第三方应用程序.它是仅由我自己的客户端应用程序使用的Web服务.

HTTP BasicHTTP Digest在Web上看起来是最简单的,但事实是我从未使用RESTeasy找到它们的具体实现,例如.我发现这个网页这一个 RestEasy的的文档.它们确实非常有趣,但它们对此主题(HTTP Basic或Digest)几乎没有任何说明.

所以,我在这里问:

如何使用RESTeasy中的HTTP Basic或Digest保护我的WebService?

也许这很简单,在文档中或其他任何地方都不值得一提?此外,如果有人能够就保护RESTful Web服务的问题向我提供一些见解,那么它可能会有所帮助.

我选择了正确的方法吗?

Luk*_*ncl 6

保护REST API的最简单方法是使用SSL上的HTTP基本身份验证.由于标头是加密的,因此使用摘要没有多大意义.只要您可以在客户端上保持密码安全,这应该可以正常工作.


mig*_*ain 6

我已经设法通过使用RESTeasy的拦截器来实现这一目标.基本上,通过使用像类这样的监听器来拦截请求.在这个类中,我检查请求的HTTP头,然后继续正常的Basic-Auth过程.

有用的链接:

http://en.wikipedia.org/wiki/Basic_access_authentication
使用REST API传递消息头中的参数
http://www.alemoi.com/dev/httpaccess/(Servlet部分)

我希望这可以帮助任何人.

谢谢.