我已经创建了一个RESTful服务器应用程序,该应用程序可以访问有用的URL,例如www.site.com/get/someinfo。它是在Spring中构建的。
但是,这些访问受密码保护。我现在正在构建一个客户端应用程序,它将连接到此RESTful应用程序并通过URL请求数据。我如何通过凭证?目前,它只是向用户弹出用户/密码框,但我希望用户能够在客户端应用程序的框中键入用户名和密码,并让客户端应用程序在RESTful应用程序时提供凭据。它要求数据。客户端是使用Struts构建的。
干杯
编辑 - 我认为我的问题不够明确。我已经强制使用HTTPS了,我的问题更多,在代码中,当我从www.site.com/get/someinfo请求数据时,如何在提出请求的同时传递我的凭据?
答案 0 :(得分:5)
您或多或少有3种选择:
答案 1 :(得分:2)
如果您可以在请求中添加HTTP标头,则只需添加Authorization
标头:
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
您正在使用基本身份验证,而QWxhZGRpbjpvcGVuIHNlc2FtZQ==
位是“username:password
”base64编码(不带引号)。 RFC 2617
答案 2 :(得分:1)
嗯,https与身份验证无关,它只是传输级加密。
如果您与HTTP api进行交互,无论是否为https,并弹出对话框,这意味着它使用HTTP身份验证,基本或摘要。如果客户端实例化http客户端以从这些“服务”中读取数据,则可以在实例化对象时传递这些凭据。
如果您使用客户端脚本,XmlHttpRequest也支持http身份验证。
因此,就代码而言,如何将凭据传递给RESTful服务取决于您正在使用的http客户端(您实例化以检索数据的对象)。您可以自己从客户端收集这样的用户名/密码,并使用它来呼叫其他服务。
答案 3 :(得分:0)
查看现有解决方案。在这种情况下,oauth