grails的那个编码,老是忘记,记这里。。。。。

grails 的s2-quickstart生成的user domain里进行了

def beforeInsert() {
		encodePassword()
	}

	def beforeUpdate() {
		if (isDirty('password')) {
			encodePassword()
		}
	}

	protected void encodePassword() {
		password = springSecurityService.encodePassword(password)
	}
而regester的时候又encode了一次password,导致decode的时候熄火。

除了改插件代码外,新版本多的注册代码中加了个判断,根据配置来决定是否encode

String encodePassword(String password, salt) {
		def encode = SpringSecurityUtils.securityConfig.ui.encodePassword
		if (!(encode instanceof Boolean) || (encode instanceof Boolean && encode)) {
			password = springSecurityService.encodePassword(password, salt)
		}
		password
	}

你可能感兴趣的:(grails的那个编码,老是忘记,记这里。。。。。)