【问题标题】:Sessions in Restlet?Restlet 中的会话?
【发布时间】:2011-08-06 17:03:27
【问题描述】:

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

我的应用程序需要以下内容:

  1. 我需要一种方法让客户端初始登录并能够查看他们是否通过资源登录。
  2. 我需要通过另一个资源提供对对象列表的“安全”访问。这很简单,但这取决于我是否能够控制访问权限,目前我无法做到这一点,因为我没有任何激活会话的感觉。

是否有一种简单的方法可以让我启用会话并让用户在一段时间内保持登录状态?如果这是 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,但是,嘿,它会产生快速的伪代码。

【问题讨论】:

  • 您知道您不应该在 RESTful 系统中使用会话吗?
  • 现在我是 :-) 然而,这似乎表明安全和访问控制在 RESTful 系统中没有地位,这当然完全违背了它的目的。
  • 不,它只是说每个请求都需要以某种方式重新验证。它实际上只是归结为性能问题。您需要找到一种方法来快速进行身份验证。

标签: java session rest restlet httpsession


【解决方案1】:

查看 HTTP Basic、HTTP Digest 和 HTTP OAuth 身份验证(Restlet 均支持)。

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-12-04
  • 2011-09-23
  • 2017-06-17
  • 1970-01-01
  • 2012-09-06
  • 1970-01-01
  • 1970-01-01
  • 2013-08-26
相关资源
最近更新 更多