Загрузка данных


  @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