Restlet中的会话?

时间:2011-04-16 00:02:23

标签: java session rest restlet httpsession

我刚刚实现了我的第一个Restlet应用程序(最后:]),现在我遇到了一个更大的问题。我构建了一个名为LoginResource的非常简单的资源,它允许POSTGET操作允许用户登录并分别检查他们是否已登录。现在我已经实现了这个,我实际上可以让客户端调用服务器,“登录”,并查看结果,我如何实际跟踪是否有人登录?

我的申请需要以下内容:

  1. 我需要一种方法让客户端最初登录,并能够查看他们是否通过资源登录。
  2. 我需要通过其他资源提供对对象列表的“安全”访问。这很简单,但这取决于我能够控制访问权限,因为我现在无法做到这一点,因为我没有任何激活的会话感。
  3. 是否有一种简单的方法可以让我启用会话并让用户登录一段时间?如果这是PHP,这将是我的代码:

    // login.php: login code
    $username = $_POST['username'];
    $password = $_POST['password'];
    
    if (validate($username, $password)) {
        session_start();
        $_SESSION['is_logged_in'] = "yarp";
        echo get_login_success();
    } else {
        echo get_login_failure();
    }
    
    // list.php: display list of objects
    if (isset($_SESSION['is_logged_in']))
        echo get_object_list();
    else
        echo get_security_error();
    

    我讨厌把它全部带回PHP,但是,它会产生快速的伪代码。

1 个答案:

答案 0 :(得分:3)

查看HTTP Basic,HTTP摘要和HTTP OAuth身份验证(Restlet都支持)。

对于某些客户端(如浏览器),基于cookie的身份验证仍然在REST中使用,但没有服务器端的sesssion。

检查此链接: http://restlet.tigris.org/issues/show_bug.cgi?id=605