Grails Acegi 手动登录

Posted

技术标签:

【中文标题】Grails Acegi 手动登录【英文标题】:Grails Acegi manual login 【发布时间】:2011-01-17 02:49:24 【问题描述】:

有没有办法在不使用“j_spring_security_check”的 POST 请求的情况下做到这一点?

【问题讨论】:

【参考方案1】:

我需要同样的东西(在我的例子中,我想在用户创建新帐户后登录),所以我在生成的 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 构造函数将您我们作为您的用户名/密码。

【讨论】:

如何使用散列密码? 我不知道你是怎么做到的。我的第一个想法是尝试继承UsernamePasswordAuthenticationToken,但我不确定这会让你走多远。用例是什么?也许还有其他方法可以做到? 如果您使用我在邮件列表中发布的内容,它将使用散列密码,因为它不需要调用 authenticate()。

以上是关于Grails Acegi 手动登录的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Acegi 的 bean 手动查询 LDAP?

使用 Grails 和 Acegi 自动登录

登录页面使用 SSL,未加密页面看不到加密会话 cookie (Grails, Acegi)

Grails + Acegi:如何处理密码更新?登录用户与未登录用户

Grails - ShiroSecurity - 手动登录用户

Grails - Acegi:自定义身份验证方法