Ich habe eine Java-Webapp. Die Webapp ist als Kriegsdatei gepackt. Diese WAR-Datei erlaubt statische Inhalte, die direkt über HTTP übermittelt werden. Für Servlets in diesem Krieg kann ich eine HTTP-Authentifizierung machen (implementiere sie mit dem Servlet selbst). Aber ich möchte auch HTTP-Auth für den statischen Inhalt. Wie kann ich das erkennen?Wie kann ich in einer Java-Webapp (war) HTTP-Auth für statische Inhalte verwenden?
Antwort
Erstellen Sie eine Klasse, die javax.servlet.Filter implementiert. Siehe The Essentials of Filters
Die Hauptmethode ist doFilter, die die Objekte ServletRequest, ServletResponse und FilterChain übergeben wird. Dort erzwingen Sie die Authentifizierung.
Dann wird Ihr Filter in web.xml deklariert und ein Filter-Mapping wie folgt (Karten zu jeder Anfrage)
<filter>
<filter-name>Authentication Filter</filter-name>
<filter-class>
com.nfsdsystems.security.filters.AuthenticationFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Authentication Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Setzen Sie Ihre statische HTML-Dateien in einem direcotry und definieren Sie Ihre Sicherheitseinschränkungen in Ihrem web.xml. Ordnen Sie die Abhängigkeiten der entsprechenden Rolle zu.
<security-constraint>
<display-name>securedResources</display-name>
<web-resource-collection>
<web-resource-name>securedRes</web-resource-name>
<url-pattern>/secured/*</url-pattern>
<http-method>GET</http-method>
<http-method>PUT</http-method>
<http-method>HEAD</http-method>
<http-method>TRACE</http-method>
<http-method>POST</http-method>
<http-method>DELETE</http-method>
<http-method>OPTIONS</http-method>
</web-resource-collection>
<auth-constraint>
<description>
authenticatedUser_securedRes</description>
<role-name>authenticatedUsed</role-name>
</auth-constraint>
</security-constraint>
Das wäre in der Tat der bevorzugte Weg, es mit Realms zu machen. – Nathan
Wie kann ich die Benutzernamen/Passwörter auf diese Weise definieren? – Mnementh
Es hängt von dem App-Server ab, den Sie verwenden. Für Tomcat, google "jdbc Realm-Konfiguration". Für Websphere wäre der bevorzugte Weg ldap. – svachon
- 1. Kann ich Orbited als HTTP-Server für dynamische Inhalte verwenden?
- 2. Wie statische Inhalte in Nancy bereitgestellt werden
- 3. Statische Inhalte Subdomain mit Express?
- 4. IIS umleiten Regeln für statische Inhalte Domains
- 5. ASP.NET Themes und statische Inhalte
- 6. Wie statische Inhalte mit Sonnen einfach httpserver
- 7. Wie kann ich Inhalte speichern?
- 8. Wie kann ich Inhalte in einer Staubvorlage ausblenden und anzeigen?
- 9. Kann ich dynamische Inhalte in einem Bootstrap-Popover verwenden?
- 10. Holen Sie sich maven-jetty-plugin zu deploy-war und bedienen Sie gleichzeitig externe statische Inhalte
- 11. Wie stehe ich statische Inhalte auf Spring Container-unabhängige Weise?
- 12. Webhosting sagt mir, ich muss http-Handler für statische Inhalte in meiner web.config hinzufügen?
- 13. War eine statische Variable eine globale Variable?
- 14. Wie macht NGINX statische Inhalte wie .js, .css, .html?
- 15. ASP.NET MVC Wie kann ich Inhalte ohne Cookies (Azure) bereitstellen?
- 16. Filter für bestimmte Inhalte in einer Klasse
- 17. Wie kann ich eine statische Ressource für das StringFormat auf einem TextBlock verwenden oder verwenden?
- 18. Google Analytics Cookies vs Subdomain für statische Inhalte
- 19. Wie kann ich programmatisch Inhalte zu einer Bachstelzen-StreamField hinzufügen?
- 20. Wie kann ich dynamische Inhalte von einer Webseite analysieren?
- 21. Wie kann ich eine statische Methode für eine Variablenklasse aufrufen?
- 22. Wie kann ich Bildpfad auf klicken für asp.net dynamische Inhalte
- 23. Django - dient, und die Verwaltung von Berechtigungen für statische Inhalte
- 24. Wie kann ich Titeltitel für Dojo-Inhalte mit Leerzeichen festlegen?
- 25. Wie kann ich "statische" Methode für enum in Kotiln erstellen?
- 26. Wie kann ich java.lang.instrument in einer Eclipse RCP-Anwendung verwenden?
- 27. Statische Inhalte aus einer JAR-Datei mit Jetty bereitstellen?
- 28. Unix regex für Inhalte in einer Datei
- 29. Die Logistikseite der Verwendung mehrerer Subdomänen für statische Inhalte
- 30. Gatsby statische Seite Gen. & Veröffentlichung neuer Inhalte
Das funktioniert gut für mich. Ich habe meinen eigenen Filter geschrieben. – Mnementh