0

我正在为 BCryptPasswordEncoder 和 groovy 合约而苦苦挣扎

我有一个生产者和一个消费者服务,生产者发送一条带有用户注册信息的消息(即用户和密码(使用 BCryptPasswordEncoder(12) 编码)。测试是使用加密的密码创建消息,这没关系,但是我的问题是:1.是否可以加密合约中的密码?2.如何加密?3.如果可以,我该如何设置 BCryptPasswordEncoder(12)?

在从生产者运行测试(mvn clean install)时,验证失败,因为加密密码<>合约中定义的普通密码

谢谢!

更新 我已经将一个示例上传到 github https://github.com/dssantana/user-registration 如果您运行 mvn clean install,您会发现在某一时刻,其中一个测试失败并出现类似于以下的错误:

2017-12-18 11:55:36.056 INFO [user-client,,,] 5236 --- [main] .eucUserAccountRegistrationController : UserAccountRegistrationController - UserAccountRegister: AccountRegistration(firstName=Diego, lastName=Santana, email=dssantana@gmail.com , 手机号码=0452621048, ipAddress=127.0.0.1, 生日=1979-10-16, 密码=$2a$12$jm3YACnf72P3wKCmPLRXwufeXJx5lzibwLz3DzhCXft.XKW2bK1RC) [错误] 测试运行:2,失败:0,错误:2,跳过:0,经过时间:6.935 秒 <<< 失败!- 在 au.net.example.userclient.ContractVerifierTest [错误] validate_shouldSendAnAccountRegistrationMessageWithSpecialCharactersUsername(au.net.example.userclient.ContractVerifierTest) 经过时间:0.426 秒 <<< 错误!java.lang.IllegalStateException: 解析 JSON [{"firstName":"Joe","lastName":"Doe","email":"joe.doe+test@gmail.com","mobileNumber":"0452621048", "ipAddress":"127.0.0.1", "birthday":"1979-10-16", "password":"$2a$12$fZcEe6fUzmjHmItvsJ8MCOCOR.mnc2nbDqh/Ce1aYzUBRq5L8ywRm"}] 与 JSON 路径不匹配 [$[? (@.['password'] == 'Test01')]] 在 au.net.example.userclient.ContractVerifierTest.validate_shouldSendAnAccountRegistrationMessageWithSpecialCharactersUsername(ContractVerifierTest.java:49) [错误] validate_shouldSendAnAccountRegistrationMessage(au.net.example.userclient.ContractVerifierTest) 已用时间:0.323 s <<< 错误!java.lang.IllegalStateException: 解析 JSON [{"firstName":"Diego","lastName":"Santana","email":"dssantana@gmail.com","mobileNumber":"0452621048","ipAddress": "127.0.0.1", "birthday":"1979-10-16","password":"$2a$12$jm3YACnf72P3wKCmPLRXwufeXJx5lzibwLz3DzhCXft.XKW2bK1RC"}] 与 JSON 路径不匹配 [$[?(@.['password '] == 'Test01')]] 在 au.net.example.userclient。

加密的密码是Test01,应该与合约测试中的普通密码匹配,但是我不确定如何验证,这是一种加密方式,验证的方法是将合约数据与测试数据进行加密和匹配。

4

1 回答 1

0

如此链接https://github.com/dssantana/user-registration/pull/1/files中所示,添加到初始测试设置中的是$( consumer("fixed value"), producer(regex(nonBlank())))确保在生产者方面,在生成的测试中我们有一些密码值

于 2017-12-18T15:29:03.500 回答