2013-05-12 4 views
0

Я установил плагин с пружинным защитным ядром для моего проекта для безопасности входа. После его установки все работает отлично, например, если account_locked = true, это сообщение, в котором заблокирована учетная запись, если включено = false он показывает, что учетная запись не включена. Но когда все правильно, оно показывает «Извините, мы не смогли найти пользователя с этим именем пользователя и паролем». Хотя у меня есть это имя пользователя и пароль. Может кто-нибудь, пожалуйста, помогите мне в этом, пожалуйста?Безопасность пружины Grails не работает должным образом

вот мое создать действие >>>

def createUser = { 
    def user = new User() 
    user.properties = params 
    println(user.username) 
    def password = user.password 
    def salt = user.username //depends on what you're using as a salt 
    user.password = springSecurityService.encodePassword(password, salt) 
    user.save() 
} 
+0

Как вы создаете/сохраняете пользователя в базе данных? –

+0

да @IgorArtamonov ты меня достал. Прямо сейчас один из моих друзей сказал мне, что вручную вставленные данные не будут использоваться для входа в систему. Для этого будут использоваться кодированные данные. Думаю, ты имел в виду это. Но теперь предположим, что я хочу добавить пользователя для своего приложения, тогда как я могу его создать. Понятия не имею. Если вы окажете некоторую помощь, это будет так полезно. –

ответ

1

Для вставки объекта пользователя, вам необходимо зашифровать поле пароля, как:

def springSecurityService 

def someAction() { 
    def user = ... 
    def password = ... 
    def salt = user.username //depends on what you're using as a salt 
    user.password = springSecurityService.encodePassword(password, salt) 
    user.save()  
} 

Смотрите плагин Документов http://grails-plugins.github.io/grails-spring-security-core/docs/manual/guide/12%20Password%20and%20Account%20Protection.html

Соль используется для победы над заранее вычисленными атаками радужного стола, которые в противном случае могли бы использоваться для значительного повышения эффективности взлома базы данных хешированных паролей. См. http://en.wikipedia.org/wiki/Salt_(cryptography)

+0

Что такое соль? Я понятия не имею об этом –

+0

Взгляните на http://en.wikipedia.org/wiki/Salt_(cryptography) –

+0

Я попытался создать нового пользователя. Но это не сработало. Здесь я даю исходный код. Но println() печатает нуль и ничего не сохраняется в базе данных. Можете ли вы мне посоветоваться с редактированием исходного кода, пожалуйста? –

Смежные вопросы