Spring Security 无密码编码

Posted

技术标签:

【中文标题】Spring Security 无密码编码【英文标题】:Spring security no password encoding 【发布时间】:2012-01-17 21:33:09 【问题描述】:

是否可以在 Spring Security 中关闭密码编码?如果是这样,怎么做?

【问题讨论】:

我不确定任何配置设置,但是通过插件中的一个小黑客肯定可以,如果您对黑客方法感兴趣,请告诉我,我会发布所需的更改,或者更好的破解插件 zip :) cmets 的否决按钮在哪里 ;) 不要破解插件 - 做对了。 【参考方案1】:

总的来说,这是一个非常糟糕的主意,但如果你有一个用例,那么它是可行的。覆盖grails-app/conf/spring/resources.groovy 中的passwordEncoder bean:

import org.springframework.security.authentication.encoding.PlaintextPasswordEncoder

beans = 
   passwordEncoder(PlaintextPasswordEncoder)

【讨论】:

There is no excuse for saving passwords in plain text。通常用例是能够通过电子邮件发送密码提醒。但是很容易实现类似的功能,即发送电子邮件以重置密码。如果土木工程师的客户要求在不存在所需火灾的情况下建造某些东西,土木工程师会说这是不可能的,如果有需求,最终会走开。作为软件开发人员,我们会说,是的,好吧,我可以做到! @stivlo - 虽然我普遍同意这一点,但 是一个合理的明文密码编码应用程序,用于开发/测试环境,以便能够通过简单的测试来验证密码是否正确存储在数据库中。理想情况下,这应该与部署后实时系统测试相结合,以检查密码没有以明文形式存储,但它可以成为自动化测试系统的有用部分。

以上是关于Spring Security 无密码编码的主要内容,如果未能解决你的问题,请参考以下文章

Spring Security 中的密码编码器

使用 Spring Security Grails 插件编码密码

使用 Spring Security、Spring Boot 和 MongoDB 进行密码编码和解码

spring security 使用 bcrypt 算法对密码进行编码

Spring Security 5中的默认密码编码器

Grails使用spring security更新嵌入对象但没有编码密码