Vorrang von Sicherheitsbeschränkungen vor Filtern in Servlets

Während des Studiums zu Sicherheitsbeschränkungen und Filtern in Servlets habe ich die folgenden Deklarationen in der Datei web.xml vorgenommen, die nicht wie erwartet funktionierten:

<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>

Nach dem, was ich gelesen habe: Filter sollten angetroffen werdenVor Die Anfrage erreicht eine bestimmte URL. Wie kommt es, dass die Sicherheitsbeschränkung zuerst aufgerufen wird?

Ich weiß, dass es sicherheitstechnisch sinnvoll ist (um den Filter zu erreichen, muss man sich authentifizieren), aber ich würde das gerne wissenSequenz, die durch die Anforderung ausgelöst wird.

Sucht der Container zuerst nach den gesicherten Ressourcen und löst so die Sicherheitsbeschränkung aus?

Dies wird jedoch im Widerspruch zu dem folgenden Absatz stehen, der aus Head First Servlets und Jsp zitiert wird. "

Denken Sie daran, dass es in der DD darum geht, was passiertnach dem die Anfrage. Mit anderen Worten, der Client hat die Anfrage bereits gestellt, als der Container die Elemente untersucht, um zu entscheiden, wie er reagieren soll. Die Anforderungsdaten wurden bereits über die Leitung gesendet

oder löst die Anfrage nur beides aus: Filter und Sicherheitsbeschränkung, aber die Sicherheitsbeschränkung wird dem Filter vorgezogen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage