feat: add exit confirmation dialog, system tray enhancements, and diagnostic options
This commit is contained in:
+17
-2
@@ -33,12 +33,27 @@ public class CertificateManager {
|
||||
|
||||
/**
|
||||
* Cria e inicializa uma instância padrão do CertificateManager com os provedores nativos da plataforma.
|
||||
* Suporta chaves de diagnóstico para isolamento de problemas de middleware:
|
||||
* -Dcybercore.diag.no-wincert=true (não inicializa Windows Certificate Store)
|
||||
* -Dcybercore.diag.no-pkcs11=true (não inicializa PKCS#11 / DLLs nativas)
|
||||
*/
|
||||
public static CertificateManager createDefault() {
|
||||
CertificateManager manager = new CertificateManager();
|
||||
manager.registerProvider(new WindowsCertificateStoreProvider());
|
||||
|
||||
if (Boolean.getBoolean("cybercore.diag.no-wincert")) {
|
||||
logger.warn("Diagnóstico: Provedor Windows Certificate Store DESATIVADO via -Dcybercore.diag.no-wincert=true");
|
||||
} else {
|
||||
manager.registerProvider(new WindowsCertificateStoreProvider());
|
||||
}
|
||||
|
||||
manager.registerProvider(new Pkcs12CertificateProvider());
|
||||
manager.registerProvider(new Pkcs11CertificateProvider());
|
||||
|
||||
if (Boolean.getBoolean("cybercore.diag.no-pkcs11")) {
|
||||
logger.warn("Diagnóstico: Provedor PKCS#11 DESATIVADO via -Dcybercore.diag.no-pkcs11=true");
|
||||
} else {
|
||||
manager.registerProvider(new Pkcs11CertificateProvider());
|
||||
}
|
||||
|
||||
return manager;
|
||||
}
|
||||
|
||||
|
||||
+30
@@ -63,4 +63,34 @@ class CertificateManagerTest {
|
||||
assertThat(byCnpj).isPresent();
|
||||
assertThat(byCnpj.get().id()).isEqualTo("cert-1");
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Deve desativar provider PKCS#11 quando chave de diagnóstico estiver ativa")
|
||||
void shouldRespectDiagnosticsNoPkcs11() {
|
||||
System.setProperty("cybercore.diag.no-pkcs11", "true");
|
||||
try {
|
||||
CertificateManager manager = CertificateManager.createDefault();
|
||||
assertThat(manager.getProviders())
|
||||
.extracting(CertificateProvider::getProviderId)
|
||||
.doesNotContain("provider-pkcs11")
|
||||
.contains("provider-a1");
|
||||
} finally {
|
||||
System.clearProperty("cybercore.diag.no-pkcs11");
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Deve desativar provider Windows Certificate Store quando chave de diagnóstico estiver ativa")
|
||||
void shouldRespectDiagnosticsNoWinCert() {
|
||||
System.setProperty("cybercore.diag.no-wincert", "true");
|
||||
try {
|
||||
CertificateManager manager = CertificateManager.createDefault();
|
||||
assertThat(manager.getProviders())
|
||||
.extracting(CertificateProvider::getProviderId)
|
||||
.doesNotContain("provider-win-store")
|
||||
.contains("provider-a1");
|
||||
} finally {
|
||||
System.clearProperty("cybercore.diag.no-wincert");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user