2011-06-08 13 views
7

Actualmente estamos usando tomcat 5.5 y nos gustaría agregar un salt a nuestra autenticación JDBCRealm. Me preguntaba si había alguna clase existente o si necesitamos extender JDBCRealm y escribir nuestra propia clase de autenticación.¿Existe soporte en tomcat para un JDBCRealm que contiene una sal?

tenemos el siguiente en nuestro server.xml

<Realm className="org.apache.catalina.realm.JDBCRealm" ...more stuff… /> 

Pero no se parece a esta clase toma en una sal.

Respuesta

3
  1. Escriba su propia clase JDBCRealmWithSalt que se extiende JDBCRealm clase
  2. sobrescritura digest() método (añada su sal aquí)
  3. Deja JDBCRealmWithSalt en catalina.jar:org/apache/catalina/realm
  4. <Realm className="org.apache.catalina.realm.JDBCRealmWithSalt"...>
1

No hay clases existentes incluidas en las API Tomcat 5.5, por lo que tendrá que usar una personalizada.

Un ejemplo se puede encontrar en http://eneuwirt.de/2011/05/01/saltawarejdbcrealm/

+1

Tomcat 7 puede tener algo fuera de la caja según http://stackoverflow.com/questions/8053552/tomcat-7-11-jdbcrealm-and-userdatabaserealm-dont-work- juntos – rbeede

+0

Lamentablemente, eneuwirt.de se ha ido. –

+0

Pero el código [vive] (https://github.com/eneuwirt/fbs/blob/master/fbs-security/src/main/java/com/fbs/security/shiro/realm/SaltAwareJdbcRealm.java). –

0

Como de Tomcat 8 para cualquier enviado hacia fuera-de-la-box Realm puede especificar:

  • el algoritmo deseado
  • la codificación para ser utilizado
  • sal
  • número de iteraciones
  • longitud de la clave

Se podría proporcionar estos en CATALINA_HOME/bin/digest.[bat|sh]

Para más información: https://tomcat.apache.org/tomcat-8.0-doc/realm-howto.html

Cuestiones relacionadas