Я хотел бы перехватить вызовы свойств классов домена для реализации контроля доступа.
Моей первой попыткой было переопределить setProperty и getProperty. Делая это, я отключил все приятные функциональные возможности классов домена Grails, таких как
domainClass.properties = params
и автоматическое преобразование типов данных.
Следующая попытка состояла в использовании DelegatingMetaClass, который позволил мне, по крайней мере, распечатать несколько хороших сообщений журнала вокруг фактического вызова. Но я не мог понять, как получить доступ к реальному объекту для оценки разрешений.
Наконец, groovy.lang.Interceptor, кажется, хороший выбор, так как я могу получить доступ к реальному объекту. Но так ли это? Как я могу заставить все классы домена быть перехваченным?
Заранее большое спасибо.
С уважением, Даниэль