2016-04-23 13 views
0

neu installierte tomcat 9 - und migrierten Anwendungen von tomcat 8 bis tomcat 9.Tomcat 9 DIGEST mit JDBCRealm - Es sind nur verdaut, keine Passwörter

meine Config Zur Authentifizierung wird JDBCRealm mit einer MySQL-Datenbank. Die untenstehende Konfiguration lief sehr gut mit Tomcat 8, aber auf Tomcat 9 akzeptiert nur das Passwort direkt anstelle der "menschlichen" Passwörter (die Digests werden in der Tabelle tomcat_users gespeichert) direkt anstelle der üblichen Passwörter. Es scheint daher, dass der Digest-Algorithmus MD5 hier nicht ausgeführt wird, wenn ein für Menschen lesbares Passwort auf der Login-Seite FORM übermittelt wird.

Die Config innen server.xml ist

<Realm className="org.apache.catalina.realm.JDBCRealm" connectionName=“..." connectionPassword=“..." connectionURL="jdbc:mysql://127.0.0.1:3306/TOMSCHEMA" digest="MD5" driverName="org.gjt.mm.mysql.Driver" roleNameCol="role_name" userCredCol="password" userNameCol="user_name" userRoleTable="tomcat_users_roles" userTable="tomcat_users"/> 

das Authentifizierungsverfahren FORM für eine Anwendung und DIGEST für die entsprechende API in einer anderen Anwendung. Beide Apps sehen sich in einem Cross-Kontext. Die web.xml der Anwendung enthält:

<login-config> 
    <auth-method>FORM</auth-method> 
    <realm-name>NAME</realm-name> 
    <form-login-config> 
     <form-login-page>/WEB-INF/security/protected/login.jsp</form-login-page> 
     <form-error-page>/WEB-INF/security/protected/error.jsp</form-error-page> 
    </form-login-config> 
</login-config> 

Was könnte hier falsch sein? Es ist alles ganz "Standard" ... Welche Shell tue ich, um mit der FORM-Authentifizierungsseite wieder eine menschliche Passworteingabe mit DIGEST zu haben, wie ich es mit Tomcat 8 hatte?

Vielen Dank im Voraus

Grüße

Antwort

0

Jetzt müssen Sie in server.xml zusätzliche Zeilen hinzufügen entsprechen alte Aufschlußmethode:

 <Realm className="org.apache.catalina.realm.JDBCRealm" 
 
     driverName="org.apache.derby.jdbc.EmbeddedDriver" 
 
     connectionURL="jdbc:derby:/tomcat/db/zzz;create=false" 
 
     connectionName="zzz" 
 
     connectionPassword="zzz" 
 
     userTable="login" 
 
     userNameCol="login" 
 
     userCredCol="passwd" 
 
     userRoleTable="roles" 
 
     roleNameCol="role" 
 
     > 
 
     <CredentialHandler className="org.apache.catalina.realm.MessageDigestCredentialHandler" 
 
      algorithm="MD5" 
 
      iterations="1" 
 
      saltlenght="0" 
 
     /> 
 
     </Realm>