1
我想爲我的Wicket應用程序實現一個簡單的授權策略。我實現了我自己的AuthorizationStrategy(擴展IAuthorizationStrategy)。使用MetaDataKey的檢票授權
http://old.nabble.com/Authorization-strategy-help-td18948597.html 閱讀上述鏈接後,我發現使用元數據驅動的授權比使用Annotations更有意義。
所以我有一個簡單的RoleCheck類
public class RoleCheck {
private String privilege;
public RoleCheck(String priv) {
this.privilege = priv;
}
public void setPrivilege(String privilege) {
this.privilege = privilege;
}
public String getPrivilege() {
return privilege;
}
}
我添加它的組件:
public static MetaDataKey<RoleCheck> priv = new MetaDataKey<RoleCheck>() {};
editLink.setMetaData(priv, new RoleCheck("Update"));
在我的授權策略類,我試圖讓與組件相關的元數據:
public boolean isActionAuthorized(Component component, Action action) {
if (action.equals(Component.RENDER)) {
RoleCheck privCheck = (RoleCheck) component.getMetaData(EditControlToolBar.priv);
if (privCheck != null) {
...
}
}
但是getMetaData給出錯誤
「綁定不匹配:
Component
類型的通用方法getMetaData(MetaDataKey<M>)
不適用的參數 (MetaDataKey<RoleCheck>
)。推斷類型RoleCheck
不是
任何幫助,將不勝感激有界參數「一 有效的替代品。謝謝
謝謝。這正是我正在尋找的。我錯過了使RoleCheck可串行化! (咄!) – JGirl 2010-04-19 15:17:59