在REST调用中传递参数

在REST调用中传递参数,rest,jboss7.x,jax-rs,ejb-3.0,resteasy,Rest,Jboss7.x,Jax Rs,Ejb 3.0,Resteasy,我正在开发一个企业应用程序,其中我需要在REST请求中传递会话ID,该会话ID将在我的EJB方法中传递相同的ID 我采取的方法是: 每当用户登录时创建会话ID。使用此会话id在每个api(登录除外)中作为头参数传递。(我仍在考虑如何排除一个RESTAPI) 在标头中使用此会话id并将其传递给每个EJB。(如何在调用拦截器后的后续Rest调用中读取头参数。) 如果这是正确的方法,有人能告诉我吗 此外,生成用于创建会话令牌的单向散列比发送自动生成的主键有用吗?将令牌作为头参数传递以标识登录用户是一种

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

我采取的方法是:

  • 每当用户登录时创建会话ID。使用此会话id在每个api(登录除外)中作为头参数传递。(我仍在考虑如何排除一个RESTAPI)
  • 在标头中使用此会话id并将其传递给每个EJB。(如何在调用拦截器后的后续Rest调用中读取头参数。)
  • 如果这是正确的方法,有人能告诉我吗


    此外,生成用于创建会话令牌的单向散列比发送自动生成的主键有用吗?

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

    关于生成单向散列,是的。这就是路。自动生成主键是个糟糕的主意。如果我登录并分配了1427会话,我几乎可以100%确定现在有一个1426会话可供其他用户使用。巨大的安全漏洞


    确保尽可能使这些令牌难以猜测,并在整个过程中使用https,否则您将向窃听者公开您的登录令牌。

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

    为什么不使用
    JSESSIONID