无需使用springsecurity即可忘记密码功能

时间:2018-11-03 07:06:01

标签: spring grails groovy

在我的grails(2.4.4版)应用程序中,我使用邮件插件发送确认邮件,现在我需要实现忘记密码的代码。

我可以不使用Spring Security来实现它吗?

谢谢。

我喜欢在我的 UserController

def forgotPassword={
    if (params.email) {
        User user = User.findByEmail(params.email)
        if (user) {
            def password = randomService.generateRandomString(6)
            user.password = authenticateService.encodePassword(password)
            if (!user.save(flush:true)) {
                user.errors.each {
                    log.error "err $it"
                }
                flash.message = message(code: "UserController.msg.forgot.error")
            } else {
                UserService.sendmail {
                    to user.email
                    subject message(code:"UserController.mail.forgot.subject" )
                    body(view:"forgotPasswordEmail", model: [person:user, password:password])
                }
                flash.message = message(code:"UserController.msg.forgot", args:[user.email] )
            }
        } else {
            flash.message = message(code:"UserController.msg.forgot.unknown", args:[params.email])
        }
    }
}

它没有显示任何错误但没有结果

1 个答案:

答案 0 :(得分:0)

您应该:

  1. 具有视图/[yourController]/forgotPassword.gsp来呈现您的flash.message
  2. 向输出render 'email was sent'渲染一些内容,使其仅在浏览器中显示此消息
  3. 设置响应的状态代码(用于REST呼叫)response.status = 200