2009-09-24 8 views
1

J'utilise le plugin acegi groovy pour l'enregistrement et l'authentification des utilisateurs. La classe de domaine User fournie avec le plug-in a la définition (et les commentaires) suivante.Chiffrement de mot de passe Acegi

class User { 
static transients = ['pass'] 
static hasMany = [authorities: Role] 
static belongsTo = Role 

/** Username */ 
String username 
/** User Real Name*/ 
String userRealName 
/** MD5 Password */ 
String passwd 
/** enabled */ 
boolean enabled 

String email 
boolean emailShow 

/** description */ 
String description = '' 
... 

}

et ainsi de suite. Par conséquent, j'ai supposé que la méthode de chiffrement de mot de passe est MD5.

Je dois enregistrer plusieurs milliers d'utilisateurs, en générant un mot de passe aléatoire pour chaque utilisateur. (le nom d'utilisateur est déjà donné).

J'ai écrit un script qui génère des mots de passe -plain-aléatoires et MD5 mots cryptés et font les insertions respectives dans le DB. Malheureusement, aucun de ces utilisateurs ne peut se connecter.

Le connecteur de sécurité acegi utilise-t-il le cryptage MD5?

Semble être qu'il utilise autre chose. Malheureusement, je n'ai rien trouvé dans la documentation.

Quelqu'un sait comment se fait ce cryptage?

Merci!

Luis

Répondre

1

Si vous utilisez DaoAuthenticationProvider et ne définissez pas la propriété passwordEncoder, le codeur de mot de passe par défaut est PlaintextPasswordEncoder. Pour configurer un codeur de mot de passe MD5, faire

<bean 
     id="passwordEncoder" 
     class="org.acegisecurity.providers.encoding.Md5PasswordEncoder"/> 

    <bean 
     id="daoAuthenticationProvider" 
     class="org.acegisecurity.providers.dao.DaoAuthenticationProvider"> 
    <property name="userDetailsService" ref="userDetailsService"/> 
    <property name="passwordEncoder" ref="passwordEncoder"/> 
    </bean> 
+0

Merci pour votre réponse. +1 pour vous Non, je n'ai rien réglé. Maintenant, j'ai trouvé à DefaultSecurityConfig.groovy que l'algorithme est 'SHA'. Savez-vous comment générer des mots de passe chiffrés par SHA? Merci! – Luixv

+2

echo -n mot de passe | openssl sha1 – Roshan

+0

Merci Roshanico! – Luixv

0

ou vous pouvez utiliser le authenticateService.encodePassword ("mot de passe"). Voir la méthode de sauvegarde de RegisterController du plugin par exemple

Questions connexes