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 手动登录的主要内容,如果未能解决你的问题,请参考以下文章
登录页面使用 SSL,未加密页面看不到加密会话 cookie (Grails, Acegi)
Grails + Acegi:如何处理密码更新?登录用户与未登录用户