Fehler beim Lesen der Konfigurationsdatei für die JAAS Authentication Provider im Frühjahr

StackOverflow https://stackoverflow.com/questions/1065684

  •  21-08-2019
  •  | 
  •  

Frage

Rippen wirklich meine Haare auf diesem heraus. Ich habe einen JAAS Authentication Provider für meinen Frühling Webapp konfiguriert. Ich habe eine Bohne Definition dafür wie folgt erstellt:

 <beans:bean id="jaasAuthenticationProvider"
     class="org.springframework.security.providers.jaas.JaasAuthenticationProvider">
    <custom-authentication-provider />
    <beans:property name="loginConfig" value="file:webapps/mywebapp/WEB-INF/login.conf"/>
    <beans:property name="loginContextName" value="myWebapp"/>
    <beans:property name="callbackHandlers">
       <beans:list>
          <beans:bean class="org.springframework.security.providers.jaas.JaasNameCallbackHandler"/>
          <beans:bean class="org.springframework.security.providers.jaas.JaasPasswordCallbackHandler"/>
       </beans:list>
    </beans:property>
 </beans:bean>

Meine login.conf Datei für JAAS:

myWebapp {
    com.sun.security.auth.module.Krb5LoginModule 
    required  
    doNotPrompt=false
    useTicketCache=true
    debug=true;
};

com.sun.security.jgss.initiate {
    com.sun.security.auth.module.Krb5LoginModule 
    required;
};

Wenn der Frühling initialisiert, konfiguriert es die richtig Bohne. Als ich in mein Webapp loggt versuchen, aber ich folgende Fehlermeldung erhalten:

DEBUG webapp.AuthenticationProcessingFilter - Authentication request failed: org.springframework.security.AuthenticationServiceException: I/O error while reading configuration file.; nested exception is javax.security.auth.login.LoginException: I/O error while reading configuration file.

Ich kann diese Fehlermeldung irgendwo im Frühjahr Quellcode finden, und die Fehlermeldung selbst ist überhaupt nicht hilfreich. Jede Idee, was dieses verursachen könnte?

War es hilfreich?

Lösung 2

die Antwort gefunden. JAAS geladen wurde tatsächlich die Konfigurationsdatei korrekt, aber ich war eine krb5.conf Datei in meinem lokalen JDK fehlt. Diese Datei muss leben in:

$JAVA_HOME/lib/security

Beispiel:

[libdefaults]
  default_realm = DOMAIN.NET
  dns_lookup_kdc = true

[domain_realm]
  .domain.net = DOMAIN.NET

wo domain.net ist der Name der Kerberos-Domäne und DOMAIN.NET ist das gleiche nur aktiviert.

Andere Tipps

Legen Sie Ihre Datei auf dem Classpath eher dann zu versuchen, es aus dem WEB-INF-Verzeichnis zu lesen. /webapps/myapp/WEB-INF/classes/login.conf - dann im Frühling Config ändern die Zeile:

    <beans:property name="loginConfig" value="classpath:login.conf"/>

Ich glaube nicht, dass Sie einen Frühlings-Fehler bekommen, aber eine Dateisystem / java Störung zu erhalten, werden Sie aus dem Verzeichnis WEB-INF nicht erlaubt zu lesen.

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