Скрытие структуры Java-пакета в URL - PullRequest
0 голосов
/ 17 апреля 2010

Наш текущий URL веб-приложения раскрывает структуру пакета класса для конечного пользователя. Это связано с тем, что в файле web.xml тег отображения сервлета выглядит следующим образом: Имя сервлета /servlet/com.xxx.yyy.ClassName

Есть ли способ, которым я могу скрыть структуру пакета. то есть com.xxx.yyy.ClassName для просто ClassName?

Спасибо Самир

Ответы [ 2 ]

1 голос
/ 17 апреля 2010

Это распознается как старая и уязвимая функция встроенного Tomcat InvokerServlet. Чтобы исправить это, отключите его в Tomcat /conf.web.xml, удалив или закомментировав записи <servlet> и <servlet-mapping>, связанные с <servlet-name>invoker</servlet-name>.

.

Это была дыра в безопасности в древних версиях Tomcat, она была исправлена ​​в Tomcat 5 и более поздних версиях, где она устарела и по умолчанию отключена. Он будет удален в Tomcat 7.

Вам нужно явно определить все сервлеты в web.xml веб-приложения вместе с приличным url-pattern. Если у вас довольно много сервлетов, рассмотрите шаблон Front Controller , т.е. только один сервлет, который делегирует и выполняет желаемую бизнес-логику на основе каждого метода запроса, URI запроса, запроса pathinfo и т. .

0 голосов
/ 17 апреля 2010

Да. Исправьте сопоставления URL в web.xml.

Если по какой-то странной причине это невозможно, вы можете добавить этот фильтр впереди, чтобы переписать URL:

http://tuckey.org/urlrewrite/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...