Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用身份验证令牌的Java REST服务_Java_Security_Rest_Jakarta Ee_Authentication - Fatal编程技术网

使用身份验证令牌的Java REST服务

使用身份验证令牌的Java REST服务,java,security,rest,jakarta-ee,authentication,Java,Security,Rest,Jakarta Ee,Authentication,在我的web应用程序上使用JavaEE6。我想将我的一些功能公开为Json Rest服务。我想使用身份验证令牌进行登录,用户将发送其用户名、密码,服务器将发送回令牌,该令牌将用于授权用户在给定时间内的进一步请求 到目前为止,有几个问题困扰着我 当服务器创建令牌并发送到客户机时,服务器应该将其保存在DB中还是使用哈希表之类的东西作为用户标识令牌对保存在Bean中 我可以使用任何特定于JavaEE的API获得一些帮助吗?或者这必须是所有自定义代码 以下是我的输入: 我会将令牌保存在DB中,以防您

在我的web应用程序上使用JavaEE6。我想将我的一些功能公开为Json Rest服务。我想使用身份验证令牌进行登录,用户将发送其用户名、密码,服务器将发送回令牌,该令牌将用于授权用户在给定时间内的进一步请求

到目前为止,有几个问题困扰着我

  • 当服务器创建令牌并发送到客户机时,服务器应该将其保存在DB中还是使用哈希表之类的东西作为用户标识令牌对保存在Bean中

  • 我可以使用任何特定于JavaEE的API获得一些帮助吗?或者这必须是所有自定义代码

    • 以下是我的输入:

      • 我会将令牌保存在DB中,以防您需要重新启动服务器,因为您不想丢失所有用户的令牌。您还可以潜在地将其保存在内存中,以加速请求,并且只有在内存中找不到它时才在DB中查找它

      • 我会接受标题中的标记。我会将rest服务放在HTTPS上,这样请求就被加密了,然后您就不必担心在请求中手动加密令牌了

      • 我可能会看看JAX-RS,看看它提供了什么特性


        • 将令牌保存在bean或哈希表中不会持久。DB将在执行之间保持

          如果要使用REST,则可以将参数中的身份验证传递给方法,也可以传递给请求头本身。加密是另一回事。我想这取决于系统的规模和开放程度。如果安全性是最重要的,那么是的,您应该找到某种形式的加密

          我使用和做过类似的事情。这些东西用这个比较简单。编写自定义代码就是重新发明轮子。有很多框架可以帮助您。但是,您将了解该框架的学习曲线。

          我最近讨论了如何在JAX-RS REST API中使用简单的会话令牌方法和更安全的方法(使用会话令牌作为共享密钥对请求进行签名)设置基于角色的授权

          归结起来是:

          • 从服务器获取会话令牌以及用户的一些标识符
          • 使用令牌加密请求中的信息
          • 还可以使用时间戳和nonce值来防止MITM攻击
          • 除非最初检索会话令牌,否则不要来回传递它
          • 对会话令牌具有过期策略

          我建议您看看JAAS。这是一个J2EE标准,对于声明式身份验证/授权非常有用。@Apache Fan tnx,我想JAAS将在我从客户端收到令牌并想对他进行身份验证后发挥作用?不。你不必玩任何代币。在JAAS中,您可以只定义URL模式@ApacheFanI更新了QuestionwellJAAS过程,类似于-1。JAAS可以配置一些后端表用于用户ID角色映射。一旦请求到来,JAAS将检查它是否经过身份验证。若不是,那个么用户将被重定向到登录页面。2.如果用户已通过身份验证,则会根据ACL规则检查用户是否有权访问您的URL。您是否也可以查看此规则?我又提出了一个问题,