我有一个应用程序,它使用Spring Security来验证用户。用户和哈希/盐分密码存储在数据库中。没有什么特别的hele,有用户名/密码字段的用户表。该应用程序使用BCryptPasswordEncoder进行哈希函数。现在我需要将一些遗留用户数据迁移到应用程序中。遗留数据密码用其他散列函数进行散列,比如MD5。我可以将遗留数据插入到同一个用户表中,但随后我使用不同的哈希函数对密码进行哈希。
bcrypt密码有一个非常独特的表示形式,可以使用正则表达式进行测试。我可以想象的最简单的解决方案是创建一个密码编码器组合,它可以由身份验证管理器使用。它应该根据密码的表示来决定使用什么编码器。
简单的例子:
class PasswordEncoderComposite implements PasswordEncoder {
private Pattern BCRYPT_PATTERN = Pattern.compile("\\A\\$2a?\\$\\d\\d\\$[./0-9A-Za-z]{53}");
public String encode(CharSequence rawPassword) {
if (BCRYPT_PATTERN.matcher(encodedPassword).matches()) {
return new BCryptPasswordEncoder().encode(rawPassword);
} else {
return new StandardPasswordEncoder().encode(rawPassword);
}
}
public boolean matches(CharSequence rawPassword, String encodedPassword) {
if (BCRYPT_PATTERN.matcher(encodedPassword).matches()) {
return new BCryptPasswordEncoder().matches(rawPassword, encodedPassword);
} else {
return new StandardPasswordEncoder().matches(rawPassword, encodedPassword);
}
}
}
本文向大家介绍Powershell使用嵌套哈希表实例 嵌套哈希表的2种写法例子,包括了Powershell使用嵌套哈希表实例 嵌套哈希表的2种写法例子的使用技巧和注意事项,需要的朋友参考一下 嵌套哈希表对于多维数组是一个更好选择。这种存储方式将更易于管理。请看: 也可以使用这种写法,也许更好: 脚本定义了一个用户,你可以查看一下这个用户的全部信息: 你将更容易获得里面单个信息:
问题内容: 我正在使用Flamingo功能区和Substance Office 2007外观。 当然,现在 每个 控件都具有这种外观,即使对话框上也是如此。 我想要的是Office 2007中的功能,功能区具有Office 2007的外观,但其他控件保留其本机Vista / XP的外观。 是否可以为某些控件分配不同的外观?也许使用某种链接或代理外观? 问题答案: 我刚刚发现:由于物质5.0的SKI
我有一个gradle项目。在那里,我尝试启动一个Eureka服务器。以下是我的设置: //compileOnly('org.springframework.cloud:spring cloud starter netflix eureka server:')] 通过这种方式,我尝试启动应用程序: @EnableEurekaServer公共类EurekaServer{ } 但不幸的是,报告出现了一些
这可能不是典型的设置,但由于更高的决策,我们最终在一个应用程序中有多个 kafka 集群,每个集群有多个主题,每个集群可能具有不同的序列化策略。Json/avro.avro可能与融合的架构注册表一起使用,或者使用单个对象编码。 好吧,我通过构建自己的抽象和注册中心,分析配置并手动创建大部分内容,以某种方式实现了它,但我觉得我需要在几个地方多次重复主题名称、模式注册url等内容,以便创建所有需要的b
keytool-exportcert-alias diego-keystore“c:\users\diego\desktop\celuchat.keystore”“c:\openssl\bin\openssl.exe”sha1-binary“c:\openssl\bin\openssl.exe”base64 celuchat.keystore是我在导出签名的应用程序时使用的密钥库,当keytool
我想在1个应用程序中设置2个Firebase,但有不同的持久性。 一个是启用,第二个是禁用。 请通知我如何设置。 一个应用程序中的多个Firebase项目 但这并没有解释, 如何为第二个Firebase设置持久性。 我要启用第一火线的持久性。 正如我们所看到,getInstance是静态方法, 我们怎么知道, 将属于第一或第二消防基地。