【发布时间】:2014-04-03 18:38:43
【问题描述】:
本教程:
http://spring.io/blog/2010/08/11/simplified-spring-security-with-grails/
说你应该像这样创建用户:
def adminUser = SecUser.findByUsername('admin') ?: new SecUser(
username: 'admin',
password: springSecurityService.encodePassword('admin'),
enabled: true).save(failOnError: true)
但是,这不起作用。仅当您这样做时才有效:
password: 'admin'
我假设(但可能是错误的)将密码以纯文本(未散列)形式存储在内部数据库中。
有没有办法告诉 spring 加密或散列密码?它不在任何教程中,在手册中也找不到 Grails 2.3.6,安全核心 2.0-RC2 & UI,默认安装。
我看到它说 grails 默认使用 bcrypt 进行哈希处理,但我不知道如何验证这一点。我想我需要安装 mysql,告诉 grails 使用它,然后我可以查询值。
【问题讨论】:
-
看看你的 SecUser 类。当您设置它时,您会看到它实际上是在为您加密值。因此,您的数据库没有明文形式。这是 Spring Security 插件的默认设置。