Play Framework Secure Module:登录JSON响应接口

Posted

技术标签:

【中文标题】Play Framework Secure Module:登录JSON响应接口【英文标题】:Play Framework Secure Module: Login for JSON response interface 【发布时间】:2012-07-16 08:52:06 【问题描述】:

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

谢谢,乔

【问题讨论】:

【参考方案1】:

不直接,不。 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 的名称)以确定登录用户是谁.

【讨论】:

以上是关于Play Framework Secure Module:登录JSON响应接口的主要内容,如果未能解决你的问题,请参考以下文章

Apache mod_secure,禁用包含“1---”的cookie规则

Play Framework:如何不查看文件夹以了解 Play Framework 中的更改

如何构建版本独立的 Play!Framework 2 模块?

Play framework 2.5新建工程执行日志

play-framework的安装与使用

Play Framework Java - 包 play.db 不存在