Загрузка данных
@Override
public List<String> autoSelectCertificates() {
String keystoreFile = System.getenv("KEYSTORE_FILE");
String keystorePassword = System.getenv("KEYSTORE_STRING");
String selector = CertificateSelectorFactory.fromP12(
"https://auth-dmz-ift.sigma.sbrf.ru",
keystoreFile,
keystorePassword
);
System.out.println("[CustomPlaywrightServiceConfiguration] Auto-select certificate loaded: " + selector);
return List.of(selector);
}
public final class CertificateSelectorFactory {
private CertificateSelectorFactory() {
}
public static String fromP12(
String pattern,
String path,
String password) {
X509Certificate certificate =
CertificateUtils.loadCertificate(path, password);
return CertificateSelector
.certificateSelector()
.pattern(pattern)
.cert(certificate)
.build();
}
}
public final class CertificateUtils {
private CertificateUtils() {
}
public static X509Certificate loadCertificate(String path, String password) {
try (InputStream is = Files.newInputStream(Paths.get(path))) {
KeyStore keyStore = KeyStore.getInstance("PKCS12");
keyStore.load(is, password.toCharArray());
Enumeration<String> aliases = keyStore.aliases();
while (aliases.hasMoreElements()) {
String alias = aliases.nextElement();
if (keyStore.isKeyEntry(alias)) {
Certificate cert = keyStore.getCertificate(alias);
if (cert instanceof X509Certificate x509) {
return x509;
}
}
}
throw new IllegalStateException("=== В PKCS12 не найден X509 сертификат ===");
} catch (Exception e) {
throw new RuntimeException("=== Не удалось прочитать сертификат ===", e);
}
}
}
16:48:45 [INFO] Running tests.OneWorkTests
16:48:46 [CustomPlaywrightServiceConfiguration] Auto-select certificate loaded: {"pattern":"https://auth-dmz-ift.sigma.sbrf.ru","filter":{"ISSUER":{"CN":"SberCA Test1 Ext","O":"Sberbank of Russia"},"SUBJECT":{"CN":"12756379","L":"Moscow","O":"Sberbank of Russia","OU":"Sber911"}}}
16:48:48 [CustomPlaywrightServiceConfiguration] Auto-select certificate loaded: {"pattern":"https://auth-dmz-ift.sigma.sbrf.ru","filter":{"ISSUER":{"CN":"SberCA Test1 Ext","O":"Sberbank of Russia"},"SUBJECT":{"CN":"12756379","L":"Moscow","O":"Sberbank of Russia","OU":"Sber911"}}}
16:48:50 [CustomPlaywrightServiceConfiguration] Auto-select certificate loaded: {"pattern":"https://auth-dmz-ift.sigma.sbrf.ru","filter":{"ISSUER":{"CN":"SberCA Test1 Ext","O":"Sberbank of Russia"},"SUBJECT":{"CN":"12756379","L":"Moscow","O":"Sberbank of Russia","OU":"Sber911"}}}
16:48:51 [ERROR] Tests run: 3, Failures: 0, Errors: 3, Skipped: 0, Time elapsed: 5.953 s <<< FAILURE! -- in tests.OneWorkTests
16:48:51 [ERROR] tests.OneWorkTests.checkMccToIncident(PlaywrightService) -- Time elapsed: 2.743 s <<< ERROR!
16:48:51 com.microsoft.playwright.PlaywrightException:
16:48:51 Error {
16:48:51 message='net::ERR_CONNECTION_RESET at https://sber911-ift-iam.delta.sbrf.ru/sber911/index.html
16:48:51 name='Error
16:48:51 stack='Error: net::ERR_CONNECTION_RESET at https://sber911-ift-iam.delta.sbrf.ru/sber911/index.html
16:48:51 at FrameSession._navigate (/tmp/playwright-java-9219772291402735998/package/lib/server/chromium/crPage.js:487:13)
16:48:51 at async Frame.gotoImpl (/tmp/playwright-java-9219772291402735998/package/lib/server/frames.js:522:28)
16:48:51 }
16:48:51 Call log:
16:48:51 - - navigating to "https://sber911-ift-iam.delta.sbrf.ru/sber911/index.html", waiting until "load"
16:48:51
16:48:51 at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:56)
16:48:51 at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:138)
16:48:51 at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:131)
16:48:51 at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:124)
16:48:51 at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:429)
16:48:51 at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:929)
16:48:51 at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:43)
16:48:51 at com.microsoft.playwright.Page.navigate(Page.java:5504)
16:48:51 at ru.sber.qa.playwright.services.PlaywrightService.setup(PlaywrightService.java:205)
16:48:51 at ru.sber.qa.playwright.services.PlaywrightService.beforeTest(PlaywrightService.java:71)
16:48:51 at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
16:48:51 at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1939)
16:48:51 at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
16:48:51 at io.perfeccionista.framework.Environment.beforeTest(Environment.java:120)
16:48:51 at io.perfeccionista.framework.extension.PerfeccionistaExtension.beforeEach(PerfeccionistaExtension.java:136)
16:48:51 at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
16:48:51 at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
16:48:51 Caused by: com.microsoft.playwright.impl.DriverException: Error {
16:48:51 message='net::ERR_CONNECTION_RESET at https://sber911-ift-iam.delta.sbrf.ru/sber911/index.html
16:48:51 name='Error