Я пытаюсь реализовать простую стратегию авторизации для моего приложения Wicket. Я реализовал свою собственную AuthorizationStrategy (расширяющую IAuthorizationStrategy).
http://old.nabble.com/Authorization-strategy-help-td18948597.html
Прочитав приведенную выше ссылку, я понял, что имеет смысл использовать авторизацию, основанную на метаданных, а не авторизацию.
Итак, у меня есть простой класс 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 выдает ошибку
"Несовпадение привязки: универсальный метод getMetaData(MetaDataKey<M>)
из
тип Component
не применим для аргументов
(* * Тысяча двадцать одна). Предполагаемый тип RoleCheck
не является
допустимая замена для ограниченного параметра "
Любая помощь будет оценена. Спасибо