0

我正在使用播放框架提供的安全模块。现在我尝试访问受安全模块保护的控制器方法以获取 JSON 响应。有没有办法在不使用提供的登录表单的情况下访问此方法?例如使用用户名和密码作为 url 参数

谢谢,乔

4

1 回答 1

2

不直接,不。Secure 模块专为基于 UI 的身份验证而设计。也就是说,使用 HTTP 身份验证围绕控制器构建安全性非常简单。

有许多选项,这取决于您的用例如何使这项工作。如果您正在构建 RESTful Web 服务,那么使用 HTTP Auth 可能是要走的路,但如果您使用的是 AJAX,已经使用了登录页面,那么检查 cookie 可能是您的答案。

如果您查看该Http.Request对象,您将看到它包含用户名和密码字段。这些专门用于 HTTP 身份验证。因此,您可以执行以下操作

public static void myJSONAction() {
    if ("secretuser".equals(request.user) && "secret".equals(request.password)) {
        // do some JSON
    }
    else {
        // tell them they are not authorised to this content
        unauthorized( "Secret Realm" ); 
    }
}

或者,如果您的 JSON 在网站上用作 AJAX,我会很想检查安全模块的 cookie(查看源以找到 cookie 的名称)以确定登录用户是谁。

于 2012-07-16T20:47:27.943 回答