Я пишу сервлет-фильтр как решение этого вопроса:
Это хорошая идея для фильтрации внутри шаблона JSF?
Теперь идея состоит в том, чтобы создать большой фильтр для проверки всех привилегий и предоставить доступ или нет определенному пользователю.
Я создаю Карту, которая содержит все привилегии для всех подприложений, и для нее в качестве ключа используется идентификатор подприложения (длинное значение), а для значения - другая Карта, которая содержит другую важную информацию.
Классы контроллера называются class1Controller, class2Controller ecc, а вложенные приложения хранятся во многих папках с именем class1, class2 ecc ...
Последнее, что я должен сказать, это то, что все классы имеют параметр applicationID, который является тем же ключом Map, который я упоминал ранее.
Итак, что я буду делать?
Я могу получить из приложения HttpServletRequest вложенное приложение, которое посетил пользователь, с помощью метода getRequestURI (), проблема в том, что я должен взять идентификатор приложения из класса, связанного с этим приложением, поэтому я написал следующий код:
Long id= ((Class.forName(packageName+applicationName+"Controller"))session.getAttribute(applicationName+"Controller")).getApplicationId();
Проблема в том, что компилятор возвращает, что он не может найти метод getApplicationId ()!
Могу ли я что-то сделать, чтобы решить эту проблему? Или я должен найти другой способ сделать это?