Я разрабатываю приложение с использованием Spring 4.0.6 и Hibernate 4.2.21. У меня есть следующая сущность:
public class A {
@OneToMany(mappedBy="parent", fetch = FetchType.LAZY)
private Set<A> children = new HashSet<A>(0);
@ManyToOne(fetch = FetchType.EAGER)
private A parent;
/*
*
* Getters And Setters
*/
}
Другими словами, A
сущность - это дерево. Теперь я хочу защитить все узлы дерева. Рассмотрим следующее дерево:
Node-1
Node-1.1
Node-1.1.1
Node-1.1.2
Node-1.2
Node-1.3
Node-2
Node-3
Node-3.1
Node-3.2
Node-3.3
Я защищаю узел следующим образом:
@PostFilter("hasPermission(filterObject, 'read')")
public List<A> getAll() {}
Этот код защищает узлы первого уровня (Node-1
, Node-2
& Node-3
). Теперь мы хотим получить доступ пользователя read
к узлам Node-1
, Node-1.1
и Node-1-2
. Как мы это реализуем?