我正在努力学习BCryptPasswordEncoder和groovy合同
我有一个生产者和消费者服务,生产者发送一条带有用户注册信息的消息(即用户和密码(使用BCryptPasswordEncoder(12)编码)。测试是创建加密密码的消息,这没关系,但我的问题是: 1.是否可以加密合同中的密码? 怎么样? 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] .e.u.c.UserAccountRegistrationController:UserAccountRegistrationController - UserAccountRegister: AccountRegistration(firstName = Diego,lastName = Santana,email = dssantana @ gmail.com,mobileNumber = 0452621048,ipAddress = 127.0.0.1,birthday = 1979-10-16, 密码= $ 2A $ 12 $ jm3YACnf72P3wKCmPLRXwufeXJx5lzibwLz3DzhCXft.XKW2bK1RC ) [错误]测试运行:2,失败:0,错误:2,跳过:0,经过的时间:6.935 s<<<失败! - 在au.net.example.userclient.ContractVerifierTest中 [错误] validate_shouldSendAnAccountRegistrationMessageWithSpecialCharactersUsername(au.net.example.userclient.ContractVerifierTest)经过的时间:0.426秒<<<错误! java.lang.IllegalStateException:解析JSON [{ “名字”: “乔”, “姓氏”: “李四”, “电子邮件”: “joe.doe+test@gmail.com”, “移动电话号码”: “0452621048”, “ip地址”:“127.0.0.1 ” “生日”: “1979年10月16日”,的 “密码”: “$ 2A $ 12 $ fZcEe6fUzmjHmItvsJ8MCOCOR.mnc2nbDqh / Ce1aYzUBRq5L8ywRm”}] 与JSON路径不匹配[$ [?(@。['password'] =='Test01')]] at au.net.example.userclient.ContractVerifierTest.validate_shouldSendAnAccountRegistrationMessageWithSpecialCharactersUsername(ContractVerifierTest.java:49) [错误] validate_shouldSendAnAccountRegistrationMessage(au.net.example.userclient.ContractVerifierTest)已用时间:0.323秒<<<错误! java.lang.IllegalStateException:解析JSON [{ “名字”: “迭戈”, “姓氏”: “桑塔纳”, “电子邮件”: “dssantana@gmail.com”, “移动电话号码”: “0452621048”, “ip地址”: “127.0.0.1”, “生日”:“1979-10-16”,“密码”:“$ 2a $ 12 $ jm3YACnf72P3wKCmPLRXwufeXJx5lzibwLz3DzhCXft.XKW2bK1RC”}]与JSON路径不匹配[$ [?(@。['password'] =='Test01 “)]] at au.net.example.userclient.ContractVerifierTest.validate_shouldSendAnAccountRegistrationMessage(ContractVerifierTest.java:33)
加密密码是Test01,应该与合同测试中的普通密码匹配,但是我不知道如何验证这一点,它是单向加密,验证的方法是加密和匹配合同数据与测试数据。
答案 0 :(得分:0)
如此链接https://github.com/dssantana/user-registration/pull/1/files所示,初始测试设置中添加的是$( consumer("fixed value"), producer(regex(nonBlank())))
行,以确保在生成者端,在生成的测试中我们有一些密码值