Ich hatte das gleiche Problem und ich wollte sehen, ob ich diese Eigenschaft nicht dynamisch basierend auf dem aktuellen Klassenpfad (der sich innerhalb des Krieges selbst befinden würde) festlegen könnte.
public class SecurityListener implements ServletContextListener {
public SecurityListener() {
}
@Override
public void contextDestroyed(ServletContextEvent arg0) {
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
if(System.getProperty("java.security.auth.login.config") == null) {
String jaasConfigFile = null;
URL jaasConfigURL = this.getClass().getClassLoader().getResource("login.conf");
if(jaasConfigURL != null) {
jaasConfigFile = jaasConfigURL.getFile();
}
System.setProperty("java.security.auth.login.config", jaasConfigFile);
}
}
}
Natürlich müssen Sie den Hörer auf Ihre web.xml hinzuzufügen:
<listener>
<listener-class>example.SecurityListener</listener-class>
</listener>
Was ist gesetzt, um die Eigenschaft java.security.auth.login.config bei der Instanziierung der Web-Anwendung, wenn sie noch nicht definiert wurde. Das heißt, Sie können es in Ihren Quellordner werfen und automatisch laden, wenn Sie nicht anderswo anders definiert werden. Ich habe dies getestet und es funktioniert auf Tomcat 6.
So, zum Beispiel, wenn Ihre Tomcat-Installation in "C: \ Programme \ Tomcat6 \" mit Ihrem Krieg in "C: \ Programme \ Tomcat6 \ Webapps bereitgestellt wurde \ mywar ", der Pfad, den es finden würde, wäre" C: \ Programme \ Tomcat6 \ Webapp \ Mywar \ WEB-INF \ Klassen ", die immer genau ist. Ich bin mir nicht sicher, ob diese Lösung auch mit anderen Webanwendungen funktioniert, aber ich würde mir das vorstellen, da login.conf sich dort befindet, wo der Klassenpfadstamm ist.
Hoffe, dass hilft!
gut angeben, dann ist es eine Option. Vielleicht können wir diesen 'java.security.auth.login.config' Parameter irgendwo in' .properties' Datei in WAR setzen? In Ihrem Fall ist diese Einstellung für alle Anwendungen in Tomcat global. – yegor256
Haben Sie eine Möglichkeit gefunden, auf die .conf-Datei zu verweisen, die in Ihrer WAR-Datei enthalten ist? – yathirigan