2014-11-11 2 views
0

Я пытаюсь создать пароль вручную, чтобы вставить его непосредственно в базу данных. Но, к сожалению, я не работаю.Grails Spring Security Core - Генерирование пароля вручную

Весенне-защитное ядро ​​настроено на использование кодирования MD5. Я создаю новый пароль на веб-странице генерации хеша md5, обновляю bbdd, но я не могу войти в систему с этим пользователем.

Я предполагаю, что перед тем, как присоединиться, у него есть определенная структура, но я этого не знаю.

+0

Hi kix300zx, вы пытались закодировать свой пароль с springSecurityService.passwordEncoder? – Abincepto

+1

Пожалуйста, не используйте MD5 для паролей. Это едва лучше, чем хранить открытые пароли. Как минимум используйте правильную соль и перейдите в bcrypt как можно скорее. –

ответ

1

Просто посмотрите в исходном коде класса basepasswordencoder.

protected String mergePasswordAndSalt(String password, Object salt, boolean strict) { 
     if (password == null) { 
      password = ""; 
     } 

     if (strict && (salt != null)) { 
      if ((salt.toString().lastIndexOf("{") != -1) || (salt.toString().lastIndexOf("}") != -1)) { 
       throw new IllegalArgumentException("Cannot use { or } in salt.toString()"); 
      } 
     } 

     if ((salt == null) || "".equals(salt)) { 
      **return password**; 
     } else { 
      **return password + "{" + salt.toString() + "}"**; 
     } 
    } 
} 

http://grepcode.com/file/repo1.maven.org/maven2/org.springframework.security/spring-security-core/3.0.1.RELEASE/org/springframework/security/authentication/encoding/BasePasswordEncoder.java#BasePasswordEncoder.mergePasswordAndSalt%28java.lang.String%2Cjava.lang.Object%2Cboolean%29