Grails Acegi ручная регистрация - PullRequest
       17

Grails Acegi ручная регистрация

1 голос
/ 15 февраля 2010

Есть ли способ сделать это без использования запроса POST к "j_spring_security_check"?

1 Ответ

2 голосов
/ 15 февраля 2010

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

import org.springframework.security.providers.UsernamePasswordAuthenticationToken as AuthToken
import org.springframework.security.context.SecurityContextHolder as SCH

class UserService {
    /** The authentication provider. */
    def daoAuthenticationProvider

    def doLogin(user) {
        // note: must use the unhashed password here
        def token = new AuthToken(user.email, user.password)
        def auth = daoAuthenticationProvider.authenticate(token)
        // log the user in
        SCH.context.authentication = auth
    }
}

Надеюсь, это поможет.

Примечание: в моем примере я использую адрес электронной почты / пароль для входа в систему. Конструктор AuthToken принимает все, что вы использовали в качестве имени пользователя / пароля.

...