2014-01-27 5 views
0

Я создал своих пользователей и роли в Bootstrap.groovy.Ошибка аутентификации - Неверные учетные данные в grails spring security

def user = new User(username:"name", password:"pass",email:"[email protected]",enabled:true).save() 

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

2014-01-27 22: 49: 04480 [HTTP-био-8090-Exec-3] DEBUG фильтр .GrailsAnonymousAuthenticationFilter - заполненный SecurityContextHolder с анонимным токеном: '{0}' 2014-01-27 22: 49: 04,480 [http-bio-8090-exec-4] DEBUG filter.GrailsAnonymousAuthenticationFilter - заполненный SecurityContextHolder с анонимным токеном: '{0 } ' 2014-01-27 23: 06: 19,654 [http-bio-8090-exec-7] DEBUG filter.GrailsAnonymousAuthenticationFilter - заполненный SecurityContextHolder с анонимным токеном:' {0} ' 2014-01-27 23:06: 19,833 [http-bio-8090-exec-8] DEBUG filter.GrailsAnonymousAuthenticationFilter - заполненный SecurityContextHolder wi го анонимного фишку: '{0}' аутентификации grails.plugin.s[email protected]dc4a600: Руководитель: [email protected]: Имя пользователя: grails.anonymous.user; Пароль защищен]; Enabled: false; AccountNonExpired: false; credentialsNonExpired: false; AccountNonLocked: false; Предоставленные полномочия: ROLE_ANONYMOUS; Учетные данные: [ЗАЩИТА]; Authenticated: true; Подробности: org.sprin[email protected]0: RemoteIpAddress: 127.0.0.1; SessionId: 951C58071D49B3E3AB6D55C158C46B43; Предоставленные полномочия: ROLE_ANONYMOUS НЕ вошел в систему 2014-01-27 23: 06: 29,147 [http-bio-8090-exec-9] DEBUG authentication.RequestHolderAuthenticationFilter - запрос обрабатывать аутентификацию 2014-01-27 23:06 : 30,115 [http-bio-8090-exec-9] DEBUG authentication.RequestHolderAuthenticationFilter - Ошибка аутентификации: org.springframework.security.authentication.BadCredentialsException: неправильные учетные данные 2014-01-27 23: 06: 30,115 [http-bio- 8090-exec-9] DEBUG authentication.RequestHolderAuthenticationFilter - Обновлен SecurityContextHolder, чтобы содержать null Аутентификация 2014-01-27 23: 06: 30,115 [http-bio-8090-exec-9] DEBUG authentication.RequestHolderAuthenticationFilter - Делегирование на обработчик ошибок аутентификации .plugin.springsecurity.web.authentication.AjaxAwareAuthenticationFailureHandler @ df9533 2014-01-27 23: 06: 30,116 [http-bio-8090-exec-9] DEBUG authentication.AjaxAwareAuthenticationFailureHandler - Перенаправление на/login/authfail? Login_error = 1 2014-01-27 23: 06: 30,165 [http -bio-8090-exec-10] DEBUG filter.GrailsAnonymousAuthenticationFilter - заполненный SecurityContextHolder с анонимным токеном: '{0}' аутентификация не удалась !!!! 2014-01-27 23: 06: 30235 [HTTP-био-8090-Exec-10] ОТЛАДКА filter.GrailsAnonymousAuthenticationFilter - Населенные SecurityContextHolder с анонимным знак: '{0}' аутентификации grails.plugin.springsecurity.authentication.GrailsAnonymousAuthenticationToken @ dc4a600: Principal: [email protected]: Имя пользователя: grails.anonymous.user; Пароль защищен]; Enabled: false; AccountNonExpired: false; credentialsNonExpired: false; AccountNonLocked: false; Предоставленные полномочия: ROLE_ANONYMOUS; Учетные данные: [ЗАЩИТА]; Authenticated: true; Подробности: org.sprin[email protected]0: RemoteIpAddress: 127.0.0.1; SessionId: 951C58071D49B3E3AB6D55C158C46B43; Предоставленная власть: ROLE_ANONYMOUS не вошел в

Что вы поняли из этого StackTrace пожалуйста?Если вам нужна дополнительная информация, я бы предоставил ее без колебаний :)

Из того, что я вижу в журналах, когда я пытаюсь войти в систему с пользователем-администратором, который я создал и проверил в базе данных, весной безопасности является пытаясь войти в системе с анонимным пользователем, который не имеет доступа к этим страницам Вот еще CONFIG Spring Security

grails.plugin.springsecurity.controllerAnnotations.staticRules = [ 
] 
grails.plugin.springsecurity.interceptUrlMap = [ 
    '/candidate/*': ['ROLE_ADMIN'], 

] 
+0

Эта строка: 'Enabled: false; AccountNonExpired: false; credentialsNonExpired: false; AccountNonLocked: false' Возможно ли, что вы пытаетесь протестировать с отключенной учетной записью? – unekwu

+0

Возможно, что мне делать, чтобы проверить? – Grandmaster

ответ

1

не так много, чтобы идти дальше здесь :) Все это говорит, что пароль плохо.

Поскольку вы не упомянули, что это обновление от 1.2.x плагина до 2.x, не должно быть проблем с настройкой. Если бы это было так, и вы не вносили никаких изменений в конфигурацию, у вас были бы старые пароли, хэшированные с SHA-256, но они бы сравнивали их с паролями с расширением bcrypt. Кроме того, даже если вы настроили его на использование SHA-256, количество иетераций хэширования изменилось с 1 на 10000, поэтому вам понадобится grails.plugin.springsecurity.password.hash.iterations = 1 в Config.groovy.

Так что я собираюсь предположить, что вы явно храните пароль в BootStrap.groovy, например.

def user = new User(username: 'me', enabled: true, password: springSecurityService.encodePassword('super_secret')).save() 

Но сгенерированный авто-хэш пользовательского класса для вас, поэтому этот хэш дважды. Если вы это сделаете, измените код BootStrap на

def user = new User(username: 'me', enabled: true, password: 'super_secret').save() 
+0

Я только что редактировал вопрос и добавил способ создания своих пользователей в Bootstrap. Я не использую кодирование/хеширование, потому что я предполагал, что это может вызвать у меня проблемы. Я не знаю, можете ли вы понять, что происходит с моим кодом :) – Grandmaster

+0

Можете ли вы поделиться настройками Config.groovy для хэширования паролей или использовать настройки по умолчанию? –

+0

Я стесняюсь скопировать весь класс, потому что я не думаю, что имею право. Я хотел бы спросить вас, можете ли вы сказать мне, в какой именно обстановке вы говорите? Весенние настройки безопасности? – Grandmaster

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