|
Модераторы: LSD, AntonSaburov |
|
iluvatar |
|
|||
Опытный Профиль Группа: Участник Сообщений: 266 Регистрация: 17.9.2007 Репутация: 4 Всего: 4 |
Есть приложение, механизмы авторизации - на spring security, а для регистрации используется свой модуль.
После регистрации бросаем письмо пользователю на мыло, он должен пройти по ссылке для активации и после этого хочется его залогинить. Варианта два я вижу два: 1. редирекнуть его на /j_spring_security_check предварительно записав в запрос логин/пароль 2. вручную положить принципиал в сессию. Для этого надо бросить в контекст объект класса UsernamePasswordAuthenticationToken. А для этого потребуется пароль для поля credentials Основная проблема в том, что пароли хранятся в зашифрованном виде и доступа к незашифрованным нет, а для обоих вариантов нужен как раз незашифрованный. Как быть? |
|||
|
||||
ki6opr |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 67 Регистрация: 20.12.2006 Репутация: нет Всего: нет |
ну писать в запрос логин и пароль явно не самая удачная идея.
мне так кажется что если пароль не положить ничего страшного не будет (только если вы потом в приложении не попросите пользователя ввести его еще раз, для какого-нибудь подтверждения). Во всяком случае спринг секьюрити проверяет пароль только в AuthenticationProvider'е |
|||
|
||||
Joss |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 103 Регистрация: 19.3.2006 Репутация: нет Всего: 1 |
Я так понимаю, активация происходит приблизительно т.о.: после регистрации для нового пользователя генерится некий activation code, который встраивается в ссылку, отправляемую пользователю на мыло. Пользователь переходит по ссылке и аккаунт благополучно активируется. Дальше нужно автоматически залогинить пользователя. Я правильно понимаю проблему?
Что если сделать еще один механизм аутентификации по activation code, который, в принципе, будет отрабатывать только раз для пользователя, активируя аккаунт? Ведь связка activation code - user существует. |
|||
|
||||
Kircul |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 166 Регистрация: 20.2.2007 Репутация: 1 Всего: 7 |
Насколько я помню, при логине сначала вычисляется хэш (md5 для примера password{salt} -> ce421738b1c5540836bdc8ff707f1572), далее сравнивается с хэшем из базы (я так понимаю именно этот метод используется), и далее токен кладется в сессию. Т.о. пароль в открытом виде вовсе и не нужен. |
|||
|
||||
iluvatar |
|
|||
Опытный Профиль Группа: Участник Сообщений: 266 Регистрация: 17.9.2007 Репутация: 4 Всего: 4 |
Joss, да, механизм именно такой.
Если подскажете как реализовать такую авторизацию средствами спринга - вопрос будет решен, а я буду благодарен во-веки-веков. Kircul, Я ручками смотрел что находится в сессии, там есть поле, содержащее пароль в незахешированном виде. Не могу сказать для чего это поле вообще используется, но оно там есть. |
|||
|
||||
iluvatar |
|
|||
Опытный Профиль Группа: Участник Сообщений: 266 Регистрация: 17.9.2007 Репутация: 4 Всего: 4 |
||||
|
||||
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |