2012-07-16 21 views
0

我正在使用由Play框架提供的安全模塊。現在即時通訊嘗試訪問受安全模塊保護的控制器方法以獲得JSON響應。有沒有一種方法可以在不使用提供的登錄表單的情況下訪問此方法?例如用戶名和密碼爲url參數Play Framework安全模塊:登錄JSON響應界面

謝謝,joe

回答

2

不直接,沒有。安全模塊專爲基於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的名稱)來確定登錄用戶是誰。