grails - 如何使用 Grails Spring Security 以编程方式更改管理员身份的用户密码?

标签 grails spring-security grails-2.0

我需要能够以管理员用户身份更改用户的密码,有点像可以通过电话执行的手动密码重置功能。我如何使用 Grails Spring Security 插件来做到这一点?我尝试寻找有关如何完成此操作的文档,但没有找到任何结果。

最佳答案

@AA 的答案在技术上是正确的,但过于笼统,因为插件必须基于配置。真正的代码会更加紧凑,因为您可以对类和字段名称进行硬编码。此外,由于您只要求更新密码,因此最后的角色更新不相关。

如果您的用户类名称是User,则使用此操作显示用户信息:

def editUserPassword() {
   [user: User.get(params.userId)]
}

并在 GSP 中配置表单(类似于生成的 edit.gsp)以发布到此操作:

def updateUserPassword() {
   def user = User.get(params.userId)
   user.password = params.newPassword
   if (!user.save())
      render view: 'editUserPassword', model: [user: user]
      return
   }

   // redirect to the 'success' page or render the user with [user: user]
}

userIdnewPassword 更改为您实际使用的任何参数名称

关于grails - 如何使用 Grails Spring Security 以编程方式更改管理员身份的用户密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12185789/

相关文章:

Spring 安全多个 hasIPAddress antMatchers

java - Spring Security 4 - REST 身份验证失败和 Controller 异常处理程序

Grails 'method not allowed' 怪异

grails - 即使域无法保存渲染 View 页面代码也不会加载?

java - @Around Controller 的建议不起作用

Grails 2.3 - [错误] 找不到具有名称的模块

grails - GORM : saving a manyTomany relationship

grails - 如何获得Grails应用程序的绝对路径

java - Spring Security ACL继承: How does it really works?

grails - 在现有的Grails应用程序中使用相同的函数时,会发生invalidArgumentException