我試圖通過擴展Security.Authenticator
類來實現Play的驗證。我使用Play 2.4.2(Damiya),這是我的代碼。Play的默認安全驗證篩選器未命中
public class Secured extends Security.Authenticator{
public Secured() {
Logger.info("In secured constructor....");
}
@Override
public String getUsername(Context context) {
return context.session().get("loggedin_user");
}
@Override
public Result onUnauthorized(Context context) {
return redirect(routes.Application.index());
}
}
我認爲這個擴展了Security.Authenticator的類作爲J2EE篩選器攔截每一個請求。但是我還沒有看過一次構造函數記錄器的打印。糾正我,如果我誤解了Security.Authenticator的概念,讓我知道它是如何工作的。
我試圖使用@Security.Authenticated
控制器中的一個動作方法的頂部和類甚至沒有編譯,儘管拋出以下編譯時錯誤。
package Security does not exist Security.Authenitcated
我猜有些庫丟失,是遊戲的認證的播放2.4.2版本改變的過程?此Secured類是否過濾所有請求以檢查身份驗證?
更新: 從play.mvc.Security.Authenticated
在頂部保持@Authenticated註解在控制器請求的動作方法後,在安全監控系統的類被過濾。我注意到每次通過Security類傳遞請求時,都會打印構造函數記錄器消息。這是否意味着每次創建一個新的Secured對象?
是的,我之前使用** play.mvc.Security.Authenticator **,但是正如我使用@ Security.Authenticated它在Play 2.4.2中不起作用。更新我的問題。 – srk
我在Play 2.4.2中驗證了這段代碼 - 它的工作原理與2.4.0中的完全相同 –
對我而言,只需導入這個** import play.mvc.Security; ** 註釋** @ Security.Authenticated **已經工作。 – srk