Grails Acegi inicio de sesión manual
-
20-09-2019 - |
Pregunta
¿Hay una manera de hacerlo sin necesidad de utilizar una solicitud POST para "j_spring_security_check"?
Solución
que necesitaba lo mismo (en mi caso quería que entrar un usuario después de que se crea una nueva cuenta), así que rebuscó en el RegistrationService generado y pareció que esta es la forma en que se realiza:
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
}
}
Espero que ayude.
Nota: En mi ejemplo, yo uso el correo electrónico / contraseña para iniciar sesión. El constructor toma AuthToken
lo que nosotros como su nombre de usuario / contraseña.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow