Я пишу простое небольшое приложение, которое представляет собой систему бронирования. В системе есть две роли: администратор и пользователь. Все запросы работают через единственный сервлет. Index.jsp
(страница входа для пользователя и администратора) работает без его помощи. Итак, у меня есть начальный URL, который выглядит так:
локальный: 8080 / [AppName] /index.jsp
Для обеспечения безопасности я написал фильтр, который не позволит анонимным пользователям заходить на любую страницу, кроме index.jsp; Админ заходит на страницу пользователя, а пользователь заходит на страницу администратора. Но проблема в том, что я не могу правильно сопоставить фильтр, потому что все URL в моем приложении выглядят так:
локальный: 8080 команда / [AppName] / сервлет = [Имя_команды]
Из-за этого, такое отображение, например (конечно, в web.xml фильтр уже описывал до этого отображения):
<filter-mapping>
<filter-name>Security</filter-name>
<url-pattern>/servlet?command=[commandName]</url-pattern>
</filter-mapping>
не работает, и мне это совсем не нравится, потому что в этом случае необходимо прописать все команды приложения.
В связи с этим у меня есть идея сделать URL при входе в smbdy следующим образом:
localhost: 8080 / [AppName] / user - для пользователя
localhost: 8080 / [AppName] / admin - для администратора
В папке web-inf у меня есть внутренняя папка "pages", в которой есть несколько внутренних папок: "error", "admin" и "user", которые хранят страницы jsp для этих ролей и ошибок.
Как реализовать предложенную идею? Я подозреваю, что это довольно тривиально, но я не нашел ответа, потому что я даже не знаю, как назвать мою проблему.