Реализация уровня записи или безопасности на уровне поля в ActiveJDBC
Игорь, мне было интересно, есть ли у вас какие-то советы о том, как я могу реализовать реализацию уровня записи или, возможно, защиту на уровне поля с помощью ActiveJDBC. Я поиграл с расширением класса Model для переопределения некоторых методов из Model. Тем не менее, это не очень "элегантное" решение, и оно стало довольно грязным. Я знаю, что у вашего класса Model есть хуки для определенных событий, но мне кажется, что ничего не выделяется для изменения поведения. Мне удалось перехватить вызовы "set" и "get" без особого взлома, чтобы реализовать простую логику типа "защита на уровне поля", но стало очень трудно перегружать другие методы, такие как методы, которые возвращают List.
Опять же, я ищу больше предложений о том, как сделать это без необходимости изменять класс Model или LazyList (хотя я мог бы также пойти по этому пути).
Я использую ActiveJDBC уже несколько лет, и это действительно отличная основа для создания. Спасибо за ваш тяжелый труд!
1 ответ
Хаха, спасибо, что обратились ко мне напрямую по имени!
Мы делаем это все время, так как сохранение паролей в базе данных в виде открытого текста не так уж и разумно. Обычно мы используем обратные вызовы для конкретных моделей: http://javalite.io/lifecycle_callbacks
Что вы хотите сделать, это зарегистрировать обратный вызов: http://javalite.io/lifecycle_callbacks
или переопределить метод beforeSave
на модели, так как каждая модель также является слушателем событий для своих событий.