Реализация разрешений на Liferay 7.1
Я пытаюсь реализовать разрешения (ресурсы и модели) на Liferay 7.1. Я заметил что BaseModelPermissionChecker
в настоящее время не рекомендуется (поэтому я не должен расширять его классы разрешений). Поэтому я попытался сделать, как указано в официальном руководстве Liferay
Однако при развертывании моих служб OSGI контейнер OSGI указывает на следующую ошибку (для разрешения модели и ресурса):
ERROR [Refresh Thread: Equinox Container: 80bbc977-c7cb-0018-1000-82f21869d6ec][com_liferay_training_space_gradebook_service:97] [com.a.b.c.service.permission.MyEntityPermission(3887)] Field _portletResourcePermission in component class com.a.b.c.service.permission.MyEntityPermission must not be static.
Вы получили эту ошибку? Я что-то пропустил?
РЕДАКТИРОВАТЬ
Компонент создан:
@Component(immediate = true, service = {})
public class BookResourcePermission {
public static final String ADD_BOOK = "ADD_BOOK";
@Reference(target = "(resource.name=com.x.y.mybook.model)", unbind = "-")
protected static void setPortletResourcePermission(PortletResourcePermission portletResourcePermission) {
_portletResourcePermission = portletResourcePermission;
}
public static boolean contains(PermissionChecker permissionChecker, long groupId, String actionId) {
return _portletResourcePermission.contains(permissionChecker, groupId, actionId);
}
private static PortletResourcePermission _portletResourcePermission;
}
Спасибо!