Учась о безопасности-ограничениях и фильтрах в сервлетах, я сделал следующие объявления в файле web.xml, который не работает, как я ожидал:Старшинства безопасности-ограничение через фильтры в сервлетах
<security-constraint>
<web-resource-collection>
<web-resource-name>BeerSelector</web-resource-name>
<url-pattern>/SelectBeer.do</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>Admin</role-name>
</auth-constraint>
</security-constraint>
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>model.MyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/SelectBeer.do</url-pattern>
</filter-mapping>
В соответствии с тем, что я читал: фильтры должны встречаться до, запрос достигает определенного URL-адреса, поэтому, как же происходит принудительное ограничение безопасности?
Я знаю, что это имеет смысл с точки зрения безопасности (чтобы получить фильтр, который вы пропустили, но я хотел бы знать последовательность , вызванную запросом.
Выполняет ли контейнер сначала поиск защищенных ресурсов, тем самым он вызывает ограничение безопасности?
Но это противоречит следующему пункту цитированном Head First сервлетов и Jsp "
Помните, что в DD, то есть о том, что происходит после запроса. Другими словами, клиент уже сделал запрос, когда контейнер начинает смотреть на элементах, чтобы решить, как реагировать. данные запроса уже отправлены по проводам
или, возможно, запрос просто запускает оба параметра: фильтр и ограничение безопасности, но ограничение безопасности предпочтительнее фильтра?