在REST调用中传递参数

时间:2013-11-25 18:48:48

标签: rest jboss7.x jax-rs ejb-3.0 resteasy

我正在开发一个企业应用程序,我需要在REST请求中传递会话ID,这将在我的EJB方法中传递相同的ID。

我采取的方法是:

  1. 每次用户登录时创建会话ID。使用此会话ID作为Header Param在每个api中传递,除了登录。 (我仍在研究如何排除一个REST API)
  2. 在Header中使用此会话ID并将其传递给每个EJB。 (如何在调用拦截器后的后续Rest调用中读取头参数。)
  3. 任何人都可以告诉我,如果这是正确的方法吗?

    此外,生成单向散列以创建会话令牌而不是发送自动生成的主键吗?

2 个答案:

答案 0 :(得分:0)

传递令牌作为标头参数以识别登录用户是一种常见方法。实际上使用OAuth基本上是相同的想法,但添加了这样做的标准方法,并增加了到期/撤销令牌的可能性。

关于生成单向哈希,是的。这是要走的路。自动生成的主键将是一个糟糕的主意。如果我登录并且我被分配了会话1427,我几乎可以100%确定现在有一个1426会话可供不同的用户使用。巨大的安全漏洞。

确保您尽可能难以猜测这些令牌,并在整个过程中使用https,否则您将向登录人员展示您的登录令牌。

答案 1 :(得分:0)

是。不要使用自动生成的主键。如果您使用多个应用层并且不想使用JSESSIONID,请使用SecureRandom生成会话令牌并使用它。