Frage

Wir vertreiben unsere Web-Anwendung für unsere Kunden als .war Datei. Auf diese Weise kann der Benutzer nur den Krieg, um ihre Behälter einzusetzen und sie sind gut zu gehen. Das Problem ist, dass einige unserer Kunden-Authentifizierung möchten, und den Benutzernamen als Parameter für bestimmte Operationen innerhalb der Anwendung verwendet werden.

Ich weiß, wie dies mit web.xml konfigurieren, aber das würden wir entweder bedeuten, haben unsere Kunden zu sagen, in der WAR-Datei zu hacken um, oder verteilen 2 separate Kriege; eine mit Authentifizierung (und vordefinierten Rollen), eine ohne.

Ich will auch keine Authentifizierung auf unseren Kunden zwingen, weil das mehr Wissen über Java-Container und Web-Server in der Regel erfordern würde, und mache es schwieriger, nur für eine Probefahrt unserer Anwendung zu nehmen.

Gibt es eine Möglichkeit, die Authentifizierungskonfiguration in dem Behälter zu tun, anstatt in dem Web-App selbst?

War es hilfreich?

Lösung

In web.xml definieren Sicherheitseinschränkungen Web-Ressource Sammlungen zu J2EE Rollen und eine Login-Konfiguration (sowohl für die Kunden, die Zugriffskontrolle wollen einige der Ressourcen Ihrer app) zu binden.

Dann lassen Sie die Kunden J2EE Rollen in Ihrem Web-App zu Benutzergruppen auf ihrem App-Server definierten bestimmte Benutzer ans Gruppe definiert binden. Kunden, die keine Zugriffskontrolle wünschen können alle Rollen an nicht autorisierte Benutzer binden (Name dieser Benutzergruppe ist spezifisch für appserver, zum Beispiel Websphere fordert, dass ‚Jeder‘). Kunden, die auf eine Ressource (e) in Ihrem Webapp auf eine begrenzte Anzahl von Benutzern oder einer Benutzergruppe beschränken zugreifen möchten durch Bindung der Rollen an Benutzer / Gruppen tun, so kann pro ihre Bedürfnisse.

Wenn eine Authentifizierung erforderlich ist Benutzers der Mitgliedschaft in einer Rolle zu überprüfen, dann die Authentifizierungsmethode in Login-Konfiguration in Ihrem web.xml angegeben verwendet.

Andere Tipps

Es ist gängige Praxis Benutzerinformationen in z gespeichert haben eine Datenquelle (Datenbank). Haben Sie Ihre Anwendung, die gleiche Datenquelle für die Authentifizierung verwenden. Datenbanken sind relativ leicht zu pflegen. Sie können sogar einige Admin-Seiten implementieren, um Benutzerinformationen aus der Anwendung heraus zu halten.

Viele Behälter, wie Glassfish, bieten Unterstützung für JDBC Realms. In diesem Fall können Sie den Zugriff konfigurieren (beispielsweise in web.xml) für Gruppen, und lassen Sie den Kunden konfigurieren Benutzernamen, Passwörter und Gruppenmitgliedschaften.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top