spring cloud contract:用户注册测试

问题描述 投票:0回答:1

我正在努力与BCryptPasswordEncoder和groovy合同

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

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

谢谢!

更新我已经将样本上传到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,mobileNumber = 0452621048,ipAddress = 127.0.0.1,birthday = 1979-10-16,password = $ 2a $ 12 $ jm3YACnf72P3wKCmPLRXwufeXJx5lzibwLz3DzhCXft.XKW2bK1RC)[ERROR]测试运行: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”:“[email protected]”,“mobileNumber”:“0452621048”, “ipAddress”:“127.0.0.1”,“birthday”:“1979-10-16”,“password”:“$ 2a $ 12 $ fZcEe6fUzmjHmItvsJ8MCOCOR.mnc2nbDqh / Ce1aYzUBRq5L8ywRm”}]与JSON路径不匹配[$ [? (@。['password'] =='Test01')]] at au.net.example.userclient.ContractVerifierTest.validate_shouldSendAnAccountRegistrationMessageWithSpecialCharactersUsername(ContractVerifierTest.java:49)[ERROR] validate_shouldSendAnAccountRegistrationMessage(au.net.example.userclient.ContractVerifierTest)时间流逝:0.323秒<<<错误! java.lang.IllegalStateException:解析JSON [{“firstName”:“Diego”,“lastName”:“Santana”,“email”:“[email protected]”,“mobileNumber”:“0452621048”,“ipAddress”: “127.0.0.1”,“生日”:“1979-10-16”,“密码”:“$ 2a $ 12 $ jm3YACnf72P3wKCmPLRXwufeXJx5lzibwLz3DzhCXft.XKW2bK1RC”}]与JSON路径不匹配[$ [?(@。['密码'] =='Test01')]]在au.net.example.userclient.ContractVerifierTest.validate_shouldSendAnAccountRegistrationMessage(ContractVerifierTest.java:33)

加密密码是Test01,并且应该与合同测试中的普通密码匹配,但是我不知道如何验证这一点,它是单向加密,验证的方法是加密合同数据并将其与测试数据相匹配。

spring-security spring-cloud spring-cloud-contract
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.