ответ

2

мне нужно было то же самое (в моем случае я хотел войти пользователь после того, как они создали новую учетную запись), так что я порылся в сгенерированном 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 принимает все, что вы нас, как ваше имя пользователя/пароль.

+0

Как я могу использовать хешированный пароль? – Lucas

+0

Я не уверен, как вы можете это сделать. Моя первая мысль - попробовать и подкласс 'UsernamePasswordAuthenticationToken', но я не уверен, как далеко это вас доставит. Что такое прецедент? Может быть, есть еще один способ сделать это? –

+0

Если вы используете то, что я разместил в списке рассылки, оно будет работать с хешированным паролем, так как ему не нужно вызывать authenticate(). –

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