REST HTTP身份验证-如何?
问题内容:
因此,我正在使用RESTeasy和Google App Engine开发REST
Web服务。我的问题与GAE无关,但我提到它只是为了以防万一。碰巧的是,我自然需要保护自己的资源和我自己的用户(而不是Google的用户)。
REST
Web服务的安全似乎是一个很有争议的主题,或者至少是一个非常“自由的”主题。REST对此没有施加任何标准。根据我在网络和文献上的研究,至少有3种方法适合我的应用程序:
- HTTP Basic (带有SSL)
- HTTP摘要 (使用SSL)
- OAuth
OAuth似乎是最完整的方法。但是我认为不需要这么复杂,因为我不需要授权任何第三方应用程序。这是一个Web服务,仅供我自己的客户端应用程序使用。
HTTP Basic 和 HTTP Digest
在网络上是最简单的,但是事实是,例如,我从未使用RESTeasy找到它们的具体实现。我发现这个网页和这一个
RestEasy的的文档。它们的确非常有趣,但是在该主题上(HTTP Basic或Digest)却几乎不起作用。
所以,我在这里问:
如何在RESTeasy中使用HTTP Basic或Digest保护我的WebService?
也许它是如此简单,以至于在文档或其他任何地方都不值得一提?另外,如果有人可以为我提供有关RESTful Web服务安全的一些见解,那么它可能会有所帮助。
我要选择正确的方法吗?
问题答案:
通过使用RESTeasy的拦截器,我设法做到了这一点。基本上,使用类之类的侦听器拦截请求。在此类中,我检查请求的HTTP标头,然后继续进行常规的Basic-
Auth处理。
有用的链接:
http://en.wikipedia.org/wiki/Basic_access_authentication
使用REST API在消息头中传递参数
http://www.alemoi.com/dev/httpaccess/(“Servlet
”部分)
我希望这对任何人都有帮助。
谢谢。