我正在使用播放框架提供的安全模块。现在我尝试访问受安全模块保护的控制器方法以获取 JSON 响应。有没有办法在不使用提供的登录表单的情况下访问此方法?例如使用用户名和密码作为 url 参数
谢谢,乔
我正在使用播放框架提供的安全模块。现在我尝试访问受安全模块保护的控制器方法以获取 JSON 响应。有没有办法在不使用提供的登录表单的情况下访问此方法?例如使用用户名和密码作为 url 参数
谢谢,乔
不直接,不。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 的名称)以确定登录用户是谁。