使用REST服务在http标头中传递参数

时间:2011-10-19 22:36:54

标签: java spring rest spring-mvc jersey

现在我正在使用java构建休息服务,并尝试使用spring安全性来保护我的服务。 我有一些服务器需要处理服务的参数(例如:应用程序ID,用户名,密码,消费者ID)。对于用户名和密码,我输入了使用base64编码的http头“授权”。有没有办法将上面的其他参数(例如AppID,consID)放入http标头? 一些代码示例会有所帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

你可以把任何你想要的东西放在你喜欢的任何标题中。您可以创建自定义标头。因此,您可以使用App-Id标题来传递appId。或者,您可以将这些参数作为URL中的参数传递。这样你就可以摆脱一些(愚蠢的)代理修剪标题的选项。

不过,我建议不要发送密码,除非你使用的是https。一般来说,我可以推荐两种类似的场景:

  • 使用OAuth - 让用户通过OAuth舞蹈授予对API客户端的访问权限。客户端最终会得到一个它在每个请求中使用的令牌。
  • 使用自定义的简化令牌方案 - 登录一次(使用用户名和密码,通过https),并发送一个短期令牌作为响应。通过提供令牌和(可选)请求参数的某些HMAC,使用消费者机密作为密钥,可以通过不安全的连接进行每个后续请求,以便您可以验证客户端是否合法。