2010-01-19 2 views
0

У меня есть приложение grails 1.2, и я хочу использовать декларативную защиту для ограничения доступа на основе ролей. Я решил попробовать сиро, установил плагин, но когда я пытаюсь пройти аутентификацию, в заголовке появляется сообщение «Недопустимое имя пользователя и/или пароль». Я проверяю запись db и пользователь там с паролем sha'ed. Сообщения не отображаются ни в консоли, ни в файле stacktrace. Я добавил "warn 'org.jsecurity'" в Config.groovy без результатов. Любые подсказки/трюки для устранения этого?Проблема с аутентификацией с помощью сиро в grails app

+0

Добавлена ​​информация «grails.app, org.apache.shiro» в конфиг не повезло – xain

ответ

1

Я столкнулся с этой проблемой, а также ... как вы сохранить пароль для пользователя? После выполнения быстрого старта, я последовал пример на странице плагина Shiro и добавил код в мою самозагрузке метод инициализации:

import org.apache.shiro.crypto.hash.Sha512Hash 

def user = new ShiroUser(username: "user123", passwordHash: new Sha512Hash("password").toHex()) 
user.save() 

Я хотел бы попытаться войти в системе и буду продолжать, чтобы получить не удалось Войти. Так что я попытался

def user = new ShiroUser(username:'admin', passwordHash:new Sha256Hash("admin").toHex()) 
user.save() 

После перехода от Sha512Hash к Sha256Hash ... Я был в состоянии войти в систему!

UPDATE: только что созданное новое приложение с настройками настроек Shiro по умолчанию после запуска «быстрого запуска». Если вы хотите создать пользователя, вы захотите использовать Sha256Hash из коробки. Тем не менее, вы можете использовать Sha512Hash или Sha1Hash, добавив компонент в свой ресурс.groovy для Spring.

Пример Sha512Hash:

 
beans = { 
    bean { 
    credentialMatcher(Sha512CredentialsMatcher) { 
     storedCredentialsHexEncoded = true 
    } 
    } 
} 

+0

Yep .. создал новое приложение Grails со свежей установкой плагина Shiro. Создал пользователя с паролемHash, установленным в Sha512Hash, а другой с Sha256Hash. Настройки по умолчанию установлены на Sha256Hash .. логин не удался с пользователем, установленным в Sha512Hash, и успешно вошел в систему с паролем пользователя, установленным на Sha256Hash! – mcroteau

+0

Где я могу найти это в реальном плагине? – mcroteau

0

Вы запустили быстрый запуск? Используете ли вы базу данных по умолчанию?

Я бы отладил через Царство, которое вы используете, и посмотреть, что происходит.

+0

я запустить быстрый старт и «ShiroUser» создается в DB через Bootstrap. Как я могу отлаживать сферу? Заранее спасибо. – xain

+0

быстрый запуск должен был создать область по умолчанию. Как вы отлаживаете, зависит от вашей среды разработки, но вы можете запустить grails с помощью grails-debug run-app, и отладчик будет прослушивать порт по умолчанию. Вам просто нужно подключить к нему IDE и установить точку останова в grails-app/realms/ShiroDbRealm.groovy – leebutts

0

Я не могу помочь с устранением неполадок, но если вы ищете более мощное решение, вы можете проверить ловкость. Он основан на сиро и предлагает множество дополнительных функций и гибкости.

Вы можете установить последнюю версию с:
grails install-plugin nimble 0.4-SNAPSHOT

nimble documentation

+0

. Самые последние проворные документы находятся здесь http://snimavat.github.io/nimble/index.html –