我已经尝试了几天,我无可救药地被困住了。为了完全理解 java 密钥库的工作原理,我一直在尝试创建自己的密钥库,在其中放入一些东西,然后从另一个程序中检索它们。
这是我的密钥库生成器:
{
//generate a X509 certificate
Security.addProvider(new BouncyCastleProvider());
CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509", "BC");
X509Certificate certificate = (X509Certificate) certificateFactory.generateCertificate(new FileInputStream("certificate.cer"));
LOGGER.debug("BouncyCastle provider & X509 certificate added.");
//generate a private & a public key
KeyPair keyPair = generateRSAKeyPair();
RSAPrivateKey priv = (RSAPrivateKey) keyPair.getPrivate();
RSAPublicKey pub = (RSAPublicKey) keyPair.getPublic();
//generate a keystore
KeyStore ks = KeyStore.getInstance("PKCS12");
char[] keyStorePassword = "keystore_password".toCharArray();
ks.load(null, keyStorePassword);
try (FileOutputStream fos = new FileOutputStream("TestKeyStore.jks")) {
ks.store(fos, keyStorePassword);
}
ks.load(new FileInputStream("TestKeyStore.jks"), keyStorePassword);
//Symmetric key
SecretKey secretKey = …Run Code Online (Sandbox Code Playgroud) 我使用 Junit5 和 Cucumber 创建了一个小片段 Spring Boot 应用程序。因为我需要使用 Junit5 我正在使用cucumber-junit-platform-engine它不支持注释CucumberOptions
正如在cucumber.io 网站上引用的:
当运行程序(即cucumber-junit-platform-engine)不提供属性解析功能时,Cucumber 将按优先级从系统属性、环境变量和cucumber.properties 文件中解析属性。
因此,我将以下文件添加cucumber.properties到我的目录中src/test/resources,内容如下:
cucumber.plugin=json:target/cucumber-reports/,pretty
Run Code Online (Sandbox Code Playgroud)
然而,当我运行我的测试时,这个文件似乎被忽略了,因为如果我通过 cli 参数传递相同的属性,则不会生成任何报告,例如:
mvn test -Dcucumber.plugin=json:target/cucumber-reports/,pretty 它生成预期的 json 报告。
我也尝试将文件放在src/main/resources下面src/main/test/cucumber.demo(功能文件所在的位置),但这些尝试都没有奏效。知道为什么文件被忽略了吗?
这是我的跑步者课程:
cucumber.plugin=json:target/cucumber-reports/,pretty
Run Code Online (Sandbox Code Playgroud)
和我的步骤定义类:
@Cucumber
public class CucumberTest {
}
Run Code Online (Sandbox Code Playgroud) java ×2
bouncycastle ×1
cucumber ×1
junit ×1
junit5 ×1
keystore ×1
private-key ×1
public-key ×1
testing ×1