围绕springsource-security-core插件实现用户控制器。
当我在控制器中“显示”用户实例(“用户”)时,我想确保密码参数为空并显示为空白编辑控件。
这是“show”方法的代码:
@Secured(['ROLE_SUPERUSER','ROLE_USER'])
def show(Long id) {
/**
* If we're not the Superuser, then we only want to see the instance of the logged in user.
*/
def userInstance
if (SpringSecurityUtils.ifNotGranted('ROLE_SUPERUSER')) {
userInstance=springSecurityService.currentUser
} else {
userInstance = User.get(id)
}
if (!userInstance) {
flash.message = message(code: 'default.not.found.message', args: [message(code: 'user.label', default: 'User'), id])
redirect(action: "list")
return
}
userInstance.setPassword(null)
[userInstance: userInstance]
}
在'userInstance'上设置“watch”表示userInstance.setPassword(null)具有所需的效果,并将“password”参数设置为“null”。
但是,当使用相同的参数集渲染视图时,将填充密码。
我也希望实现“密码确认”字段。我对groovy / grail有点新意,所以我一步一步地感觉到这一点。看来通过传入“userInstance”我传递了“User”域类的实例。
我是否需要在域类中使用两个编码字段,或者我是否可以动态地向GSP添加字段,然后在使用编码密码保存域类之前在控制器中对此进行验证?