Первое, что я должен сказать, это то, что я никогда не использую веб-фильтр в веб-приложениях Java, поэтому, возможно, это глупая идея.
Я пытаюсь создать метод, который мог бы проверять привилегиипользователя и дать доступ или нет к определенным страницам, если он может или нет доступ к этим страницам.Для лучшего объяснения я сделаю пример.Вы должны представить себе грубое веб-приложение, хорошо?Это приложение имеет следующие веб-страницы: List.xhtml (который содержит все строки и ссылки для управления этими строками);create.xhtml (как следует из названия, он используется для создания новой строки);edit.xhtml (используется для изменения строки);и view.xhtml (используется для просмотра деталей определенной строки).
Теперь у меня есть 2 типа пользователей: администратор и гость, хорошо?Привилегии просты, администратор может делать все, а гость может только просматривать детали строк.
В чем проблема?Проблема в том, что я скрываю ссылки для создания и изменения строки, но если гость изменяет URL-адрес, он может, однако, войти в create.xhtml и edit.xhtml и создать / изменить строку ... Я прочитал некоторые другие вопросы, такие как:
Защита приложений JSF и jsf security-contraint для защиты ссылки, когда пользователь не вошел в систему?
и я написал этот вопрос:
Есть ли какие-то проблемы при вставке проверки в шаблон?
, и теперь я хотел бы создать универсальный метод для реализации проверки привилегий.У меня есть следующие идеи о том, как решить эту проблему:
- создайте фильтр, подобный фильтру во втором связанном вопросе, и вставьте флажок типа «если у пользователя есть эта привилегия для этого действия, выполните ...в противном случае перенаправьте в error.xhtml ".
- вставьте чек непосредственно в шаблон, как в третьем связанном вопросе.
Какой из этих подходов будет лучшим?Как это обычно делается?