安全地向RESTFUL API提供凭证
我创建了一个RESTful服务器应用程序,它可以在有用的URL(例如www.site.com/get/someinfo)上访问和服务请求。它建在春天。安全地向RESTFUL API提供凭证
但是,这些访问受密码保护。我现在正在构建一个客户端应用程序,该应用程序将连接到此RESTful应用程序并通过URL请求数据。我如何传递凭据?目前,它只是弹出用户/密码框给用户,但我希望用户能够在客户端应用程序的框中键入用户名和密码,并让客户端应用程序将凭据提供给RESTful应用程序它请求数据。客户端使用Struts构建。
干杯
编辑 - 我不认为我做的问题不够清晰。我已经强制HTTPS,我的问题更多,在代码中,当我从www.site.com/get/someinfo请求数据时,我如何通过我的凭证并提出请求?
好吧,https与认证无关,它只是传输级加密。
如果您使用HTTP API进行交互,无论是否为https,并且弹出对话框,则表示使用HTTP身份验证(基本或摘要)。如果您的客户端实例化一个http客户端从这些“服务”中读取数据,那么当您实例化对象时,您可以传递这些凭据。
如果使用客户端脚本,XmlHttpRequest也支持http验证。
因此,就代码而言,您如何将凭证传递给RESTful服务取决于您使用的http客户端(您实例化的对象以检索数据)。您可以简单地从客户端收集这样的用户名/密码,然后使用它来调用其他服务。
如果你可以添加HTTP标头你的要求,你可以只添加Authorization
头:你在哪里使用基本身份验证
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
和QWxhZGRpbjpvcGVuIHNlc2FtZQ==
位为“username:password
” base64编码(不带引号) 。 RFC 2617
一些相关的以前的问题,可能会帮助你... ... [http://stackoverflow.com/questions/458482/rest-and-authentication-variants](http://stackoverflow.com/questions/458482/rest-和身份验证变种) [http://stackoverflow.com/questions/319530/restful-authentication](http://stackoverflow.com/questions/319530/restful-authentication) – 2009-06-03 13:20:05
这似乎很有用。他们提到的HTTP AUTH的东西 - 这是明确完成的吗?我不需要使用令牌或类似的东西,我需要将这些数据专门用于RESTful应用程序,因为它稍后使用凭据。我可以通过AUTH直接发送这些信用卡吗? – mtrc 2009-06-03 13:28:01