【发布时间】:2011-08-29 03:22:10
【问题描述】:
在 grails 中,我可以将密码字段设置为最小大小限制为 5(任意)。问题是我使用 Spring Security 服务对我的密码进行编码,并且无论我输入什么值,编码/加密的密码几乎都超过 5 个字符。
另一个论坛回复建议在保存方法中进行验证。有没有其他人解决过这个问题并知道解决方法?
Spring security 不提供解码方法(可能出于安全目的)......所以我想一个想法是获得一个不同的密码编码器,可以解码密码以进行验证......但我的直觉说 spring安全性将其排除在外是有充分理由的,也许我也应该这样做...
static constraints = {
username(blank: false, unique: true)
password(minSize: 5, blank: false, unique: true,
validator: { passwd, user ->
return passwd != user.username
})
passwordRepeat(nullable: false,
validator: { passwd2, user ->
return passwd2 == user.password
})
}
所以我使用静态约束来验证,因为大多数其他变量都是通过这种方式验证的。
对于不可读的评论,我深表歉意。
谢谢你, -阿萨夫
编辑:我认为上面提到的一个简单修复方法是在保存方法中进行验证(在加密之前),但我只是觉得以前一定有人必须处理过这个问题。我的意思是有很多网站需要密码,如果它太短,如果它不包含小写和大写字母,如果它没有符号......他们都是如何做到的?他们使用的验证方法?
【问题讨论】:
-
我不确定是什么问题....你是如何验证密码的?
-
静态约束 = { username(blank: false, unique: true) password(minSize: 5, blank: false, unique: true, validator: { passwd, user -> return passwd != user. username }) passwordRepeat(nullable: false, validator: { passwd2, user -> return passwd2 == user.password }) } 所以我使用静态约束来验证,因为大多数其他变量都是通过这种方式验证的。不幸的是,此验证仅在密码加密后完成。
-
评论中无法阅读,请编辑您的问题。
标签: validation grails encryption passwords encode