Как хранить необходимые разрешения для панелей пользовательского интерфейса
Я работаю над Java-свинг-приложением, которое до сих пор было одним пользователем / ролью. Теперь у меня есть требование, чтобы пользователи были разделены на роли с разными разрешениями. Каждая панель в приложении будет иметь определенные требования к разрешениям, которые будут определять ее поведение (т. Е. Ей нужно разрешение P1 для визуализации и P2 для редактирования).
После некоторых исследований я остановлюсь на Apache Shiro для моей среды безопасности /UAC.
У меня такой вопрос: где я должен хранить необходимые разрешения для каждой панели? Моей первой мыслью было, чтобы они были в самом классе java, но это вроде как "хак-й". Другим вариантом было сохранить их в базе данных и связать класс с необходимыми разрешениями. Но это создает проблемы: каждый раз, когда новая панель добавляется / удаляется, разрешения должны обновляться в базе данных.
Если у вас есть какие-либо указания на то, как это можно сделать / уже было сделано, я был бы очень признателен.
1 ответ
Я думаю, что безопаснее всего хранить права доступа в базе данных (или любом другом централизованном сервере). Преимущество состоит в том, что если разрешения меняются, у вас есть только одно центральное место для изменения.
Если в приложении есть какая-либо конфигурация безопасности, то после изменения вам нужно будет убедиться, что ни один пользователь не использует тайно старую версию...