Grails + Acegi:如何处理密码更新?记录与未记录的用户
问题描述:
我正在写一个模块来强制密码已过期的用户更新其密码。这个应用程序使用acegi security plugin。在检测到过期凭证后,用户将被重定向到“插入新密码”页面。但是,提交表单时,会执行auth
操作,而不是所需的操作(renewPassword
)。Grails + Acegi:如何处理密码更新?记录与未记录的用户
我怀疑这是因为用户没有登录,所以我想知道是否存在更好的方法。
例如,让用户登录,但禁用其帐户直到他/她刷新其密码。
这是正确的路吗?任何人都可以分享他/她的经验吗?
更新
试想想它,因为acegi是做所有的“检查过期证书”的工作,我将无法登录的用户,然后改变它,因为我在认证得到一个CredentialsExpiredException
失败。那么有没有办法做到这一点?
在此先感谢
答
终于解决了它的“简单,不是程序化的,conf 。文件“的方式。
在SecurityConfig.groovy
我增加了一个入口到requestMapString
/login/renewpassword = IS_AUTHENTICATED_ANONYMOUSLY
通过这种方式,可以在不登录的用户执行的loginController
内renewpassword
行动。
谢谢大家对你的时间。
答
我建议允许登录,但在你的代码中设置一个重定向标志,他们推到密码更改页面,所以即使他们试图改变到另一个位置的网站,它将他们推回密码更改页面。 (我不知道如何用这种语言编写代码,因为我从来没有用过它,但是我建议解决看似限制)
是否有可能触发已到期的异常,并根据此操作(在这种情况下重定向或执行renewPassword)? – onaclov2000 2010-10-12 13:04:57