Mentre studiava per la sicurezza-vincoli e filtri in servlet, ho fatto le seguenti dichiarazioni nel file web.xml, che non ha funzionato come mi aspettavo:Precedenza di security-constraint su filtri in servlet
<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>
Secondo quanto ho letto: i filtri devono essere rilevati prima dello la richiesta raggiunge un determinato URL, quindi, come mai il vincolo di sicurezza è stato invocato per primo?
So che ha senso da un punto di vista della sicurezza (per raggiungere il filtro che si può autenticare), ma mi piacerebbe conoscere la sequenza attivata dalla richiesta.
Il contenitore ricerca prima le risorse protette, quindi attiva il vincolo di sicurezza?
Ma questo sarà in contraddizione con il seguente paragrafo citato da Head First servlet e JSP "
Ricordate che in DD, il è su ciò che accade dopo la richiesta. In altre parole, il cliente ha già fatto la richiesta quando il contenitore inizia a guardare le elementi per decidere come rispondere. i dati di richiesta è già stato inviato attraverso il filo
o forse la richiesta attiva solo entrambi: filtro e vincolo di sicurezza, ma il vincolo di sicurezza è favorito sul filtro?