在我的應用程序中,認證方案基於用戶和角色。具有特定角色的用戶可以訪問特定的操作方法。Play框架2.2:如何在java中獲取當前控制器和操作
要實現這一點,我已經做了以下
1.Write自定義動作與動作
public class Authorization extends play.mvc.Action.Simple {
public Promise<Result> call(Context ctx) throws Throwable {
//check access
return delegate.call(ctx);
}
}
2.Annotate控制器
@With(actions.Authorization.class)
public class Upload extends Controller {
....
}
在我的行爲我有用戶是訪問在會議中。我想獲得當前的控制器和操作,以便我可以對用戶進行身份驗證。有什麼辦法嗎?
我已閱讀有關使用參數創建自定義註釋,並在每個控制器傳遞參數來標識操作。但是,如果我錯誤地寫了錯誤的動作名稱,而複製粘貼,似乎很多工作和錯誤容易。
感謝
你正在尋找一個控制器對象,或只是其中的控制器伏於動作的標識符(即字符串)的參考? – paulk23 2014-09-03 15:23:25
兩者都有效。我正在尋找控制器和方法,字符串和對象都可以。 – hridayesh 2014-09-04 05:47:38
那麼你會在'Authorization'類中有一個很大的'if ... else'結構嗎?您應該在控制器或方法級別定義執行該方法所需的角色,並在您的Authorization類中進行檢查。這將是真的不容易出錯。 – c4k 2014-09-07 07:14:15