## Runtime\.getRuntime\(\)\.exec work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/servicecontainer/app/application/configuration/task/ReportExecTask.java:171: Process proc = Runtime.getRuntime().exec(preparedCommand, null, currentConfig.directory); ## ProcessBuilder ## ScriptEngine ## GroovyShell|GroovyClassLoader ## MVEL|SpelExpressionParser|ExpressionParser ## InitialContext|\.lookup\( work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/oauth2/domain/model/client/locales/MapBasedLocalizedAttribute.java:18: Locale bestMatch = Locale.lookup(LanguageRange.parse(locale.toLanguageTag()), this.map.keySet()); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/oauth2/domain/model/authentication/OpenIdConnectUiLocaleFlowHandler.java:46: return Locale.lookup(ranges, List.of(locale)) != null; work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/flow/shared/infrastructure/session/FlowBasedIamSessionProcessing.java:59: Optional contextFromSession = ((Optional)this.readOnlyIamSessionData.get()).flatMap(ReadOnlyIamSessionData::initialContext); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/flow/shared/domain/model/session/FlowBasedIamSession.java:30: Optional initialContext, work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/flow/shared/domain/model/session/FlowBasedIamSession.java:38: this.configurationContext = initialContext; work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/login/app/infrastructure/factory/shared/LoginappSessionConfigurationContextModule.java:17: return () -> ((Optional)iamSession.get()).flatMap(ReadOnlyIamSessionData::initialContext); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/login/app/infrastructure/filter/LoginappServletInjectorFactory.java:144: return () -> ((Optional)readOnlySessionMetaData.get()).flatMap(ReadOnlyIamSessionData::initialContext); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/domain/model/session/ReadOnlyIamSessionData.java:8: Optional initialContext, Supplier sessionId, Optional userSession, boolean lockAcquired work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/domain/model/locale/LocalePreferences.java:22: Locale locale = Locale.lookup(range, this.allowedLocales); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/domain/model/locale/LocalePreferences.java:36: return Optional.ofNullable(Locale.lookup(ranges, this.allowedLocales)).orElse(this.defaultLocale); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/domain/model/locale/LocalePreferences.java:42: return Optional.ofNullable(Locale.lookup(List.of(new LanguageRange(language)), this.allowedLocales)); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseUserPersister.java:833: return new DatabaseUserPersister.PersistentUserByNameQuery(conn, username, findDeleted).lookup(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseUserPersister.java:3663: return this.lookup(startTime, resolvedUsername, Optional.of(this.requestedUsername)); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseUserPersister.java:3665: return this.lookup(startTime, this.requestedUsername, Optional.empty()); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/datatransformer/RegexpDataTransformer.java:76: StringSubstitutor subst = new StringSubstitutor(this.missingContextDataBehaviour.lookup(contextDataContainer)); ## ObjectInputStream|readObject\( work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/oauth2/domain/service/psd2/Psd2CertificateRoleExtractor.java:71: var2 = (DEROctetString)inputStream.readObject(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/oauth2/domain/service/psd2/Psd2CertificateRoleExtractor.java:95: var2 = (ASN1Sequence)inputStream.readObject(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/flow/infrastructure/serialization/StateMachineContextSerializer.java:58: var4 = (StateMachineContext)createKryo().readObject(input, DefaultStateMachineContext.class); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/security/certificate/AsymmetricKeyPairUtils.java:147: if ((pemObject = pemParser.readObject()) == null) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/cert/crl/X509CRLWrapper.java:9:import java.io.ObjectInputStream; work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/cert/crl/X509CRLWrapper.java:118: private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/cert/crl/X509CRLWrapper.java:120: this.creationDate = (Date)in.readObject(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/cert/crl/X509CRLWrapper.java:121: this.crl = ((X509CRLWrapper.CRLHolder)in.readObject()).getCRL(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/crypto/CertUtils.java:101: ASN1Sequence derSeq = (ASN1Sequence)asnStream.readObject(); ## XMLDecoder|readObject work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/oauth2/domain/service/psd2/Psd2CertificateRoleExtractor.java:71: var2 = (DEROctetString)inputStream.readObject(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/oauth2/domain/service/psd2/Psd2CertificateRoleExtractor.java:95: var2 = (ASN1Sequence)inputStream.readObject(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/security/certificate/AsymmetricKeyPairUtils.java:147: if ((pemObject = pemParser.readObject()) == null) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/flow/infrastructure/serialization/StateMachineContextSerializer.java:58: var4 = (StateMachineContext)createKryo().readObject(input, DefaultStateMachineContext.class); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/cert/crl/X509CRLWrapper.java:118: private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/cert/crl/X509CRLWrapper.java:120: this.creationDate = (Date)in.readObject(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/cert/crl/X509CRLWrapper.java:121: this.crl = ((X509CRLWrapper.CRLHolder)in.readObject()).getCRL(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/crypto/CertUtils.java:101: ASN1Sequence derSeq = (ASN1Sequence)asnStream.readObject(); ## Yaml\(|new Yaml|\.loadAs\(|\.load\( work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/admin/infrastructure/service/analytics/ConfigAnalyticsServiceImpl.java:223: new YamlConfigWriter().write(config, yamlStream); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/admin/infrastructure/service/ume/UserManagementExtensionLoaderImpl.java:13: return ServiceLoader.load(UserManagementExtension.class).stream().map(Provider::get).collect(Collectors.toSet()); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/sensitivevalues/application/service/PlainSecretsSensitiveValuesProvider.java:56: properties.load(reader); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/sensitivevalues/application/service/JceksSensitiveValuesProvider.java:137: keystore.load(null, this.storePassword); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/sensitivevalues/application/service/JceksSensitiveValuesProvider.java:140: keystore.load(in, this.storePassword); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/sensitivevalues/application/service/SensitiveValuesHelper.java:23: properties.load(instream); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/saml2/application/configuration/SamlAssertionBase.java:419: keystore.load(is, this.keystorePassword.toCharArray()); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/security/certificate/KeyStoreBuilder.java:55: keyStore.load(null, this.password.toCharArray()); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/security/util/crypto/KeyStoreUtils.java:93: keyStore.load(new ByteArrayInputStream(keyStoreBytes), keyStorePassword.orElse("").toCharArray()); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/security/util/crypto/KeyStoreUtils.java:99: keyStore.load(new ByteArrayInputStream(keyStoreBytes), null); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/login/app/application/configuration/psd2/NextGenPsd2CertificateAuthenticator.java:99: this.load(clientCertificate).orElseGet(() -> this.register(clientCertificate, username)) work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/application/configuration/jwt/JWKPairFromKeyStoreConfig.java:51: JWK jwk = JWK.load(keyStore, alias, password.orElse("").toCharArray()); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/application/configuration/state/ExpertModeRedisStateRepositoryConfig.java:68: Config redissonConfig = Config.fromYAML(this.yamlConfig); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/application/configuration/state/ExpertModeRedisStateRepositoryConfig.java:98: Config redissonConfig = Config.fromYAML(yamlConfig); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/application/configuration/state/ExpertModeRedisStateRepositoryConfig.java:124: protected abstract String getYaml(PluginConfiguration var1, ConfigurationEnvironment var2, ConfigurationContext var3) throws PropertyTypeMismatchException; work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/application/configuration/state/ExpertModeRedisStateRepositoryConfig.java:127: String yamlConfig = this.getYaml(config, env, context); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/application/configuration/state/ExpertModeRedisStateRepositoryConfig.java:131: Config redissonConfig = Config.fromYAML(yamlConfig); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/application/configuration/state/ExpertModeRedisStateRepositoryConfig.java:230: protected String getYaml(PluginConfiguration config, ConfigurationEnvironment env, ConfigurationContext context) throws PropertyTypeMismatchException { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/login/app/misc/oneshot/impl/HttpSignatureVerificationCredentialExtractor.java:121: Optional certificate = this.signingCertificateLoaderFactory.create(request).load(httpSignature.keyId()); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/login/app/infrastructure/web/SpaCustomStyles.java:92: properties.load(resource); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/login/app/infrastructure/web/SpaCustomTitle.java:91: properties.load(resource); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/infrastructure/RestApplicationDefinition.java:22: ServiceLoader loader = ServiceLoader.load(this.applicationExtensionSpi()); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/infrastructure/i18n/ServletContextBasedPropertiesLoader.java:44: properties.load(reader); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/domain/service/cache/FailureTolerantExpiringCache.java:71: return this.loader.load(key); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/domain/service/cache/FailureTolerantExpiringCache.java:76: return this.loader.load(key); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/plugin/framework/infrastructure/factory/PluginFrameworkFactory.java:38: return new YamlConfigReader(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/plugin/framework/infrastructure/factory/PluginFrameworkFactory.java:54: return new YamlConfigWriter(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/plugin/framework/infrastructure/io/YamlConfigWriter.java:66: return new YamlOutputStreamWriter(out, StandardCharsets.UTF_8) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/plugin/framework/infrastructure/io/YamlConfigReader.java:22: YamlConfigurationParser parser = new YamlConfigurationParser(tryRetrieveIamVersion(configMap)); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/plugin/framework/infrastructure/yaml/export/IamConfigurationRepresenter.java:63: throw new YamlEngineException("IAM version has invalid format: " + versionString); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/plugin/framework/infrastructure/yaml/export/IamConfigurationRepresenter.java:88: throw new YamlEngineException("Failed to collect all plugin IDs and display names: " + e.getMessage(), e); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/plugin/framework/infrastructure/yaml/export/IamConfigurationRepresenter.java:192: return iamConfigElement.getIamVersion().orElseThrow(() -> new YamlEngineException("Found no IAM version for the provided config")); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/plugin/configeditor/ui/DownloadConfigurationResource.java:43: .saveConfiguration(this.useYaml() ? ConfigFormat.YAML_FORMAT : ConfigFormat.XML_FORMAT, bos, this.translationFilters.get()); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/plugin/configeditor/ui/DownloadConfigurationResource.java:71: return this.useYaml() ? "application/yaml" : "text/xml"; work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/plugin/configeditor/ui/DownloadConfigurationResource.java:74: private boolean useYaml() { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/plugin/configeditor/ui/dialog/SecureExternalStorageManager.java:85: this.editor.load(secret); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/infrastructure/ParametersLoader.java:112: properties.load(input); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/infrastructure/ParametersLoader.java:127: properties.load(input); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/cert/crl/MultiIssuerConfigurableHTTPCrlObtainer.java:44: Optional crl = this.cachePersister.load(url); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/email/SmtpEmailService.java:313: ks.load(in, keyStorePassword != null ? keyStorePassword.toCharArray() : null); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/email/SmtpEmailService.java:364: ks.load(in, this.keystorePassword != null ? this.keystorePassword.toCharArray() : null); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/authen/FailoverServiceBase.java:265: ks.load(in, password.toCharArray()); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/authen/FailoverServiceBase.java:277: ks.load(is, password.toCharArray()); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/config/PropertiesFileHelper.java:206: properties.load(is); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/config/PropertiesFileHelper.java:239: properties.load(in); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/ldap/LdapConnectionPool.java:641: ks.load(fis, charKeystorePassword); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/ldap/LdapConnectionPool.java:678: ks.load(fis, charKeystorePassword); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/crypto/keystore/HsmKeystoreConfig.java:96: keystore.load(keystoreFileStream, this.keystorePassword != null ? this.keystorePassword.toCharArray() : null); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/httpclient/ApacheHttpClientBuilder.java:109: aKeyStore.load(keyStoreInputStream, keyStorePwdChars); ## TransformerFactory|newTransformer|TemplatesImpl work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/saml2/infrastructure/plugin/configuration/MetadataUtils.java:4:import com.airlock.iam.core.misc.util.xml.XmlTransformerFactory; work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/saml2/infrastructure/plugin/configuration/MetadataUtils.java:40: Transformer transformer = XmlTransformerFactory.secureXmlTransformer(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/login/app/misc/cronto/application/DigipassResponseFormatter.java:5:import com.airlock.iam.core.misc.util.xml.XmlTransformerFactory; work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/login/app/misc/cronto/application/DigipassResponseFormatter.java:17:import javax.xml.transform.TransformerFactoryConfigurationError; work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/login/app/misc/cronto/application/DigipassResponseFormatter.java:154: private String convertToString(Document doc) throws TransformerFactoryConfigurationError, TransformerException { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/login/app/misc/cronto/application/DigipassResponseFormatter.java:157: Transformer transformer = XmlTransformerFactory.secureXmlTransformer(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/sms/SwissphoneSmsGatewaySendMessage.java:4:import com.airlock.iam.core.misc.util.xml.XmlTransformerFactory; work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/sms/SwissphoneSmsGatewaySendMessage.java:144: Transformer transformer = XmlTransformerFactory.secureXmlTransformer(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/xml/XmlTransformerFactory.java:5:import javax.xml.transform.TransformerFactory; work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/xml/XmlTransformerFactory.java:7:public final class XmlTransformerFactory { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/xml/XmlTransformerFactory.java:8: private XmlTransformerFactory() { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/xml/XmlTransformerFactory.java:12: TransformerFactory transformerFactory = TransformerFactory.newInstance(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/xml/XmlTransformerFactory.java:13: transformerFactory.setFeature("http://javax.xml.XMLConstants/feature/secure-processing", true); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/xml/XmlTransformerFactory.java:16: transformerFactory.setAttribute("http://javax.xml.XMLConstants/property/accessExternalDTD", ""); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/xml/XmlTransformerFactory.java:17: transformerFactory.setAttribute("http://javax.xml.XMLConstants/property/accessExternalStylesheet", ""); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/xml/XmlTransformerFactory.java:21: return transformerFactory.newTransformer(); ## DocumentBuilderFactory|SAXParserFactory|XMLInputFactory work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/saml2/infrastructure/plugin/configuration/MetadataUtils.java:10:import javax.xml.parsers.DocumentBuilderFactory; work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/saml2/infrastructure/plugin/configuration/MetadataUtils.java:27: @SuppressFBWarnings(value = "XXE_DOCUMENT", justification = "DocumentBuilderFactory has secure defaults and input is trusted") work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/saml2/infrastructure/plugin/configuration/MetadataUtils.java:30: DocumentBuilderFactory factory = secureDocumentBuilderFactory(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/saml2/infrastructure/plugin/configuration/MetadataUtils.java:80: private static DocumentBuilderFactory secureDocumentBuilderFactory() throws ParserConfigurationException { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/saml2/infrastructure/plugin/configuration/MetadataUtils.java:81: DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/login/app/misc/cronto/application/DigipassResponseFormatter.java:13:import javax.xml.parsers.DocumentBuilderFactory; work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/login/app/misc/cronto/application/DigipassResponseFormatter.java:144: DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/sms/SwissphoneSmsGatewaySendMessage.java:16:import javax.xml.parsers.DocumentBuilderFactory; work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/sms/SwissphoneSmsGatewaySendMessage.java:98: DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); ## URLClassLoader|Class\.forName|defineClass work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/base/misc/io/FileWatcher.java:82: Class sensitivityModifierType = Class.forName("com.sun.nio.file.SensitivityWatchEventModifier"); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/base/domain/model/mapification/MapificationUtils.java:78: Class clazz = (Class)Class.forName(className); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/infrastructure/mapification/MapifierImpl.java:135: Class clazz = Class.forName(className); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/api/application/dependency/injection/LegacyPluginInjectorFactory.java:14: return (LegacyPluginInjector)Class.forName("com.airlock.iam.core.infrastructure.dependency.injection.ThreadLocalLegacyInjector") work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/flow/shared/application/service/recovery/SessionAttributeReaderFactory.java:123: return Optional.of(Class.forName(className)); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/saml2/application/configuration/SamlFederationConfig.java:341: Class.forName(className, false, SamlFederationConfig.class.getClassLoader()); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/sensitivevalues/application/service/SensitiveValuesHelper.java:30: Class clazz = Class.forName(classname); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/plugin/framework/application/service/builder/lombok/LombokBuilder.java:43: builderClass = Class.forName(typeToBuild.getName() + "$" + typeToBuild.getSimpleName() + "Builder"); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/plugin/framework/application/service/builder/plugin/provider/PluginDefaultValueProvider.java:17: Class builderClass = Class.forName(defaultValue.getName() + "$" + defaultValue.getSimpleName() + "Builder"); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/plugin/configeditor/ConfigEditorApplication.java:197: Class unchecked = Class.forName("com.airlock.iam.admin.app.infrastructure.AdminAppApplicationRootInfo"); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DbConnectionTestlet.java:88: Class.forName(driverClass); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:149: Class.forName(this.getDriverClass()); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/saml2/DynamicSaml2SystemProperties.java:24: Class.forName("com.airlock.iam.admin.application.configuration.Adminapp"); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/saml2/DynamicSaml2SystemProperties.java:39: (ISystemProperties)Class.forName("com.airlock.iam.saml2.infrastructure.plugin.LoginappSystemPropertiesAdapter").getConstructor().newInstance() work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/resources/DirectoryClassLoader.java:6:import java.net.URLClassLoader; work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/resources/DirectoryClassLoader.java:8:public final class DirectoryClassLoader extends URLClassLoader { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/infrastructure/JdbcCleanup.java:68: return Optional.of(Class.forName("com.mysql.jdbc.AbandonedConnectionCleanupThread")); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/infrastructure/JdbcCleanup.java:71: return Optional.of(Class.forName("com.mysql.cj.jdbc.AbandonedConnectionCleanupThread")); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/infrastructure/IamContextListenerBase.java:63: return Class.forName(clazz); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/configeditor/shared/domain/IamModuleConfigRoot.java:38: return Class.forName(clazzName); ## Jexl|OGNL|VelocityEngine|FreeMarker|Mustache ## Jdbc|DriverManager\.getConnection|createStatement\(|prepareStatement\( work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/servicecontainer/app/application/configuration/task/SqlExecutorTask.java:79: try (Statement s = con.createStatement()) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/opensso/jaxb/assertion/ObjectFactory.java:218: public JAXBElement createStatement(StatementAbstractType value) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/infrastructure/loginhistory/DatabaseLoginHistoryRepository.java:97: try (PreparedStatement stmt = conn.prepareStatement(sql)) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/infrastructure/loginhistory/DatabaseLoginHistoryRepository.java:215: try (PreparedStatement stmt = conn.prepareStatement(sql)) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/infrastructure/loginhistory/DatabaseLoginHistoryRepository.java:325: try (PreparedStatement st = conn.prepareStatement(insertStatement)) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/infrastructure/loginhistory/DatabaseLoginHistoryRepository.java:395: try (PreparedStatement stmt = conn.prepareStatement(sql, 1004, 1007)) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/infrastructure/loginhistory/DatabaseLoginHistoryRepository.java:428: try (PreparedStatement stmt = conn.prepareStatement(sql.toString())) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/infrastructure/loginhistory/DatabaseLoginHistoryRepository.java:450: try (PreparedStatement stmt = conn.prepareStatement(sql.toString())) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/infrastructure/ParametersBuilder.java:397: ParameterParser.parseJdbcUrl(this.parameters.get(ParameterSpec.H2_JDBC_URL)), work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/infrastructure/ParametersBuilder.java:398: this.parameters.get(ParameterSpec.H2_JDBC_USER), work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/infrastructure/ParametersBuilder.java:399: this.parameters.get(ParameterSpec.H2_JDBC_PASSWORD), work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/infrastructure/parameter-defaults.properties:113:iam.h2.jdbc.url = jdbc:h2:tcp://localhost:9001/iamdb work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/infrastructure/parameter-defaults.properties:114:iam.h2.jdbc.user = airlock work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/infrastructure/parameter-defaults.properties:115:iam.h2.jdbc.password = password work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/plugin/framework/misc/template/ConfigurationTemplate.java:23: private static final ConfigurationTemplate.Tag DB_URL_TAG = new ConfigurationTemplate.Tag("@dbUrl@", IamSystemProperties::getEmbeddedH2JdbcUrl); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/plugin/framework/misc/template/ConfigurationTemplate.java:24: private static final ConfigurationTemplate.Tag DB_USER_TAG = new ConfigurationTemplate.Tag("@dbUser@", IamSystemProperties::getEmbeddedH2JdbcUser); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/plugin/framework/misc/template/ConfigurationTemplate.java:26: "@dbPassword@", IamSystemProperties::getEmbeddedH2JdbcPassword work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/infrastructure/instance.properties.template:319:@iam.h2.jdbc.url@ work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/infrastructure/instance.properties.template:320:@iam.h2.jdbc.user@ work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/infrastructure/instance.properties.template:321:@iam.h2.jdbc.password@ work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/infrastructure/ParameterParser.java:160: static URI parseJdbcUrl(String value) throws ParameterValidationException { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/infrastructure/ParameterParser.java:161: return parseUrl(value, "jdbc"); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/domain/model/H2Parameters.java:11: private final URI jdbcUrl; work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/domain/model/H2Parameters.java:16: public H2Parameters(String urlPath, Path dataDir, URI jdbcUrl, String user, String password, boolean skipAdminPasswordChange) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/domain/model/H2Parameters.java:19: this.jdbcUrl = Objects.requireNonNull(jdbcUrl); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/domain/model/H2Parameters.java:36: public URI jdbcUrl() { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/domain/model/H2Parameters.java:37: return this.jdbcUrl; work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/domain/model/H2Parameters.java:73: Object this$jdbcUrl = this.jdbcUrl; work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/domain/model/H2Parameters.java:74: Object other$jdbcUrl = other.jdbcUrl; work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/domain/model/H2Parameters.java:75: if (this$jdbcUrl == null ? other$jdbcUrl == null : this$jdbcUrl.equals(other$jdbcUrl)) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/domain/model/H2Parameters.java:107: Object $jdbcUrl = this.jdbcUrl; work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/domain/model/H2Parameters.java:108: result = result * 59 + ($jdbcUrl == null ? 43 : $jdbcUrl.hashCode()); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/domain/model/H2Parameters.java:122: + ", jdbcUrl=" work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/domain/model/H2Parameters.java:123: + this.jdbcUrl() work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/domain/model/ParameterSpec.java:113: H2_JDBC_URL("iam.h2.jdbc.url"), work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/domain/model/ParameterSpec.java:114: H2_JDBC_USER("iam.h2.jdbc.user"), work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/parameters/domain/model/ParameterSpec.java:115: H2_JDBC_PASSWORD("iam.h2.jdbc.password"), work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/system/property/IamSystemProperties.java:40: private static final String H2_JDBC_URL = "iam.h2.jdbc.url"; work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/system/property/IamSystemProperties.java:41: private static final String H2_JDBC_USER = "iam.h2.jdbc.user"; work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/system/property/IamSystemProperties.java:42: private static final String H2_JDBC_PASSWORD = "iam.h2.jdbc.password"; work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/system/property/IamSystemProperties.java:164: public static String getEmbeddedH2JdbcUrl() { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/system/property/IamSystemProperties.java:165: return getInitializedSystemProperty("iam.h2.jdbc.url").orElse("jdbc:h2:tcp://localhost:9001/iamdb"); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/system/property/IamSystemProperties.java:168: public static String getEmbeddedH2JdbcUser() { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/system/property/IamSystemProperties.java:169: return getInitializedSystemProperty("iam.h2.jdbc.user").orElse("airlock"); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/system/property/IamSystemProperties.java:172: public static String getEmbeddedH2JdbcPassword() { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/system/property/IamSystemProperties.java:173: return getInitializedSystemProperty("iam.h2.jdbc.password").orElse("password"); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/report/barcode/DatabaseSequenceGenerator.java:64: statement = conn.createStatement(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/report/barcode/DatabaseSequenceGenerator.java:134: Statement statement = conn.createStatement(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabasePersisterBase.java:67: try (PreparedStatement ps = conn.prepareStatement(resolveQuery)) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseCredentialPersister.java:48: description = "Configurable credential persister and iterator using a database table as credential-repository.

The database is accessed via JDBC. It fetches the data of a user by directly executing a prepared statement. Making changes persistent is achieved by multiple update statement executions on the user record within a transaction.
This plug-in is very flexible in that it allows you to specify extra where clauses and search filters to select the set of credential records.

Note: This persister also supports iteration over credentials.

How this plug-in finds a credential record

There are two ways how this plugin finds a credential record for getting data, updating data and deleting data. The credential record is always fetched using a select statement given a primary key and applying the configured filters (additional where clause). The two variants differ in how the primary key is determined:
  1. The primary key for selecting the credential record is the username itself. This is by far the most common and most efficient method to obtain credential data.
  2. The primary key is determined by a separate query including the username. The query can be configured. This way of selecting the credential record is more flexible but results in an additional select statement.
" work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseCredentialPersister.java:532: try (PreparedStatement st = conn.prepareStatement(searchSql)) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseCredentialPersister.java:547: try (PreparedStatement ps = conn.prepareStatement(this.searchConditionPreparedQuery)) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseCredentialPersister.java:671: try (PreparedStatement ps = conn.prepareStatement(query)) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseCredentialPersister.java:1272: Statement st = conn.createStatement(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseMaintenanceMessagePersister.java:300: try (PreparedStatement st = conn.prepareStatement(sql.toString())) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseMaintenanceMessagePersister.java:460: try (PreparedStatement st = conn.prepareStatement(sql.toString())) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseMaintenanceMessagePersister.java:763: try (PreparedStatement ps = conn.prepareStatement(preparedQueryString)) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseMaintenanceMessagePersister.java:825: try (PreparedStatement stmt = conn.prepareStatement(sql.toString())) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseMaintenanceMessagePersister.java:869: try (PreparedStatement st = conn.prepareStatement(sql.toString())) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseMaintenanceMessagePersister.java:892: try (PreparedStatement st = conn.prepareStatement(sql.toString())) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DbConnectionTestlet.java:101: Connection connection = DriverManager.getConnection(testProperties.url(), testProperties.connectionProperties()); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DbConnectionTestlet.java:102: Statement statement = connection.createStatement(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseUserPersister.java:107: description = "Highly configurable persister using a relational database as user-repository. The database is accessed via JDBC. It fetches the data of a user by directly executing a prepared statement. Making changes persistent is achieved by multiple update statement executions on the user record within a transaction.
This plug-in is very flexible in that most database columns are optional and it allows you to specify extra where clauses and search filters to select the set of users. It also allows to fetch role information from separate tables.

Note: This persister also supports insertion and deletion of users and can be used to iterate over users.

How this plug-in finds a user record

There are two ways how this plugin finds a user record for getting user data, updating user data and deleting user data. The user record is always fetched using a select statement given a primary key and applying the configured filters (additional where clause). The two variants differ in how the primary key is determined:
  1. The primary key for selecting the user record is the username itself. This is by far the most common and most efficient method to obtain user data.
  2. The primary key is determined by a separate query including the username. The query can be configured. This way of selecting the user record is more flexible but results in an additional select statement.
" work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseUserPersister.java:144: description = "The name of the database column with the password hash value (or the password itself).
In general the type of this database column is expected to be BYTE or VARBYTE because password hashes are byte sequences. However, if a password hash function is used that returns a character sequence (for example the password itself) this also works with column type CHAR or VARCHAR.
The plug-in tries to find out automatically whether the password hash is binary or string type by reading a value from the database and looking at the type of the returned object. This may lead to problems with NULL values or \"too intelligent\" JDBC drivers that implicitly convert HEX- or base64-strings to binary data. The optional property \"Is Pwd Hash String Type\" can be used to tell the plug-in explicitly what data type this column is." work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseUserPersister.java:1680: Statement st = conn.createStatement(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseUserPersister.java:1779: try (PreparedStatement ps = conn.prepareStatement(searchSql)) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseUserPersister.java:1973: try (PreparedStatement st = conn.prepareStatement(preparedStatementSql.toString())) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseUserPersister.java:2078: try (PreparedStatement st = conn.prepareStatement(preparedStatementSql.toString())) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseUserPersister.java:2424: try (PreparedStatement st = conn.prepareStatement(sqlString.toString())) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseUserPersister.java:2751: Statement st = conn.createStatement(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseUserPersister.java:3711: PreparedStatement st = this.conn.prepareStatement(searchSql); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseUserPersister.java:3767: PreparedStatement statement = this.conn.prepareStatement(DatabaseUserPersister.this.rolesQuery.replaceAll(userIdPattern, "?")); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseUserPersister.java:3831: try (PreparedStatement ps = this.conn.prepareStatement(query)) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseUserPersister.java:3978: try (PreparedStatement ps = this.conn.prepareStatement(DatabaseUserPersister.this.searchConditionPreparedQuery.getQueryString())) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:37:public abstract class JdbcDataSource implements SqlDataSource { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:39: description = "

The class name of the JDBC driver to use. The driver must be on the class path. This property is required for preloading the correct driver class and for detecting the SQL dialect.

Legacy drivers:

  • For Oracle before 9i use oracle.jdbc.driver.OracleDriver.
  • For MySQL 5.x use com.mysql.jdbc.Driver.

", work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:42: "com.mysql.cj.jdbc.Driver", work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:43: "org.mariadb.jdbc.Driver", work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:44: "oracle.jdbc.OracleDriver", work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:45: "com.microsoft.sqlserver.jdbc.SQLServerDriver", work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:54: description = "The URL (also called \"connect string\") to connect to the database using the JDBC driver. The exact format of the string depends on the JDBC driver and contains hostname, port and probably other information.", work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:56: "jdbc:h2:tcp://localhost:9001/iamdb", work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:57: "jdbc:mysql://host:3306/iamdb", work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:58: "jdbc:mysql://host:3306/iamdb?useSSL=true&requireSSL=true", work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:59: "jdbc:mariadb://host:3306/iamdb", work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:60: "jdbc:oracle:thin:@host:1521:SID", work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:61: "jdbc:sqlserver://host:1433;databaseName=IAM", work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:62: "jdbc:postgresql://host:5432/iamdb" work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:80: description = "

SQL statement to test the database connection. Only use this property if your connections aren't correctly tested for validity. A JDBC 4.0 driver is usually able to test the connection validity with an internal mechanism, without an explicit test statement.

For H2 databases, a statement involving a table name should be used.

This is database specific and should be set to a query that consumes the minimal amount of load on the server.

", work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:88: description = "

The SQL dialect to use. SQL dialects have minor – but important – differences: For example, Oracle does not support auto-increment, or MSSQL requires extra information for an insert statement with default values.

With the default setting (AUTOMATIC), the dialect is automatically determined based on the \"Driver Class\" of the JDBC driver. When using a non-standard \"Driver Class\", the SQL dialect of the underlying database cannot be determined automatically and must be set to the correct value here.

", work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:96: @PluginListProperty(description = "Additional properties that will be passed on to the JDBC driver itself.", optional = true) work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:98: private List driverProperties = new ArrayList<>(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:104: return this.sqlDialect != SqlDataSource.SqlDialect.AUTOMATIC ? this.sqlDialect.getDbType() : DatabaseType.databaseTypeForJdbcDriver(this.driverClass); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:186: for (JdbcDriverProperty driverProperty : this.driverProperties) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:193: public static DatabaseType getEffectiveDbType(PluginConfiguration jdbcDataSourceConfig, ConfigurationEnvironment env, ConfigurationContext context) throws ConfigurationException { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:195: jdbcDataSourceConfig, "sqlDialect", env, context work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:201: String driverClass = StringPropertyValueReader.effectiveStringConfigValue(jdbcDataSourceConfig, "driverClass", env, context); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:202: return DatabaseType.databaseTypeForJdbcDriver(driverClass); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:206: static void validateJdbcDataSource( work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:219: "driverClass", config, configurationEnvironment, context, "The JDBC driver class " + driver + " was not found on the classpath!", e work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:232: return DatabaseType.UNKNOWN == DatabaseType.databaseTypeForJdbcDriver(driver); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:236: public JdbcDataSource() { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:240: public JdbcDataSource( work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDataSource.java:247: List driverProperties work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseTokenListPersister.java:44: description = "Highly configurable persister using a relational database as repository for token lists. The database is accessed via JDBC. It fetches the data of a user by directly executing a prepared statement. Making changes persistent is achieved by multiple update statement executions on the token list record within a transaction.
This plug-in allows you to specify extra where clauses and search filters to select the set of users.

How this plug-in finds a user record

There are two ways how this plugin finds a user record for getting user data, updating user data and deleting user data. The user record is always fetched using a select statement given a primary key and applying the configured filters (additional where clause). The two variants differ in how the primary key is determined:
  1. The primary key for selecting the user record is the username itself. This is by far the most common and most efficient method to obtain user data.
  2. The primary key is determined by a separate query including the username. The query can be configured. This way of selecting the user record is more flexible but results in an additional select statement.

Estimate for the Length of the Token List Database Field

The length of the encoded token hash list depends mainly on the number of unused tokens in the list, the used hash function and the encoding of the list.

Here is an example using the SHA1PasswordHash as hashfunction (which produces 40 bytes for each token) together with the hashed token list encoding used by this persister implementation (actually it is the encoding provided by TokenListHasher#hashedTokenListToBytes(HashedTokenList) ):
Each unused token uses 40 bytes for the hash value, 4 bytes for the index and 4 bytes for the length of the hash value, thus 48 bytes. Due to the nature of the hash function, this figures are independent of the length of the tokens.
Additionally the encoded list holds the number of the tokens (when the list was new) in 4 bytes, the length of the identification string in 4 bytes, the identification string of arbitrary length and the generation timestamp in 8 bytes. This makes another 16 bytes excluding the identification string.
If the list has 100 tokens and the identification string is 20 bytes at most, this makes 100 * 48 + 16 + 20 = 4836 bytes. " work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseTokenListPersister.java:287: try (PreparedStatement st = conn.prepareStatement(searchSql)) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseTokenListPersister.java:770: try (PreparedStatement st = conn.prepareStatement(preparedUpdateSQL)) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/DatabaseTokenListPersister.java:838: Statement st = conn.createStatement(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDriverProperty.java:8:public final class JdbcDriverProperty { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDriverProperty.java:33: public static JdbcDriverProperty.JdbcDriverPropertyBuilder builder() { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDriverProperty.java:34: return new JdbcDriverProperty.JdbcDriverPropertyBuilder(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDriverProperty.java:38: public JdbcDriverProperty() { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDriverProperty.java:42: public JdbcDriverProperty(String property, String value) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDriverProperty.java:48: public static class JdbcDriverPropertyBuilder { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDriverProperty.java:55: JdbcDriverPropertyBuilder() { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDriverProperty.java:59: public JdbcDriverProperty.JdbcDriverPropertyBuilder property(String property) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDriverProperty.java:65: public JdbcDriverProperty.JdbcDriverPropertyBuilder value(String value) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDriverProperty.java:71: public JdbcDriverProperty build() { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDriverProperty.java:72: return new JdbcDriverProperty(this.property, this.value); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcDriverProperty.java:78: return "JdbcDriverProperty.JdbcDriverPropertyBuilder(property=" + this.property + ", value=" + this.value + ")"; work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/contextdata/ValueUpdater.java:108: try (PreparedStatement st = this.dbConnection.prepareStatement(preparedUpdateSQL)) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/infrastructure/db/OracleSequenceCheck.java:3:import com.airlock.iam.core.misc.impl.persistency.db.JdbcDataSource; work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/infrastructure/db/OracleSequenceCheck.java:29: if (dataSourcePlugin.isOfPluginClass(JdbcDataSource.class)) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/infrastructure/db/OracleSequenceCheck.java:30: DatabaseType dbType = JdbcDataSource.getEffectiveDbType(dataSourcePlugin, env, context); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:26: displayName = "JDBC Connection Pool" work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:29:public class JdbcConnectionPool extends JdbcDataSource implements ResourcePool.TrackableResourceSupplier { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:30: private static final ResourcePool POOL = new ResourcePool<>(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:31: private static final ELogger LOG = ELoggerFactory.getLogger(JdbcConnectionPool.class); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:91: description = "Determines the default transaction isolation level of connections returned from the pool. If this property is not specified, the default transaction isolation level defined by the JDBC driver is used. Only use this property if you have specific isolation requirements that are common for all queries. Use one of the suggested constant names or a corresponding integer value.", work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:115: public JdbcConnectionPool( work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:122: List driverProperties, work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:170: ds.setJdbcUrl(this.getUrl()); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:188: LOG.info("Cannot set Login Timeout on JDBC Data Source: " + e.getMessage()); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:227: public static JdbcConnectionPool.JdbcConnectionPoolBuilder builder() { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:228: return new JdbcConnectionPool.JdbcConnectionPoolBuilder(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:232: public JdbcConnectionPool() { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:236: public static class JdbcConnectionPoolBuilder { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:250: private List driverProperties; work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:271: JdbcConnectionPoolBuilder() { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:275: public JdbcConnectionPool.JdbcConnectionPoolBuilder driverClass(String driverClass) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:281: public JdbcConnectionPool.JdbcConnectionPoolBuilder url(String url) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:287: public JdbcConnectionPool.JdbcConnectionPoolBuilder user(String user) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:293: public JdbcConnectionPool.JdbcConnectionPoolBuilder password(String password) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:299: public JdbcConnectionPool.JdbcConnectionPoolBuilder connectionTestStatement(String connectionTestStatement) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:305: public JdbcConnectionPool.JdbcConnectionPoolBuilder sqlDialect(SqlDataSource.SqlDialect sqlDialect) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:311: public JdbcConnectionPool.JdbcConnectionPoolBuilder driverProperties(List driverProperties) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:317: public JdbcConnectionPool.JdbcConnectionPoolBuilder maximumPoolSize(int maximumPoolSize) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:323: public JdbcConnectionPool.JdbcConnectionPoolBuilder connectionTimeoutInMs(int connectionTimeoutInMs) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:329: public JdbcConnectionPool.JdbcConnectionPoolBuilder minimumIdleConnections(Integer minimumIdleConnections) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:335: public JdbcConnectionPool.JdbcConnectionPoolBuilder maxLifetimeInMinutes(int maxLifetimeInMinutes) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:341: public JdbcConnectionPool.JdbcConnectionPoolBuilder transactionIsolationLevel(String transactionIsolationLevel) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:347: public JdbcConnectionPool.JdbcConnectionPoolBuilder idleTimeoutInMinutes(int idleTimeoutInMinutes) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:353: public JdbcConnectionPool.JdbcConnectionPoolBuilder leakDetectionThresholdInSeconds(int leakDetectionThresholdInSeconds) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:359: public JdbcConnectionPool.JdbcConnectionPoolBuilder connectionInitSql(String connectionInitSql) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:365: public JdbcConnectionPool.JdbcConnectionPoolBuilder enableJmx(boolean enableJmx) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:371: public JdbcConnectionPool build() { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:372: return new JdbcConnectionPool( work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/db/JdbcConnectionPool.java:395: return "JdbcConnectionPool.JdbcConnectionPoolBuilder(driverClass=" work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/infrastructure/IamContextListenerBase.java:77: JdbcCleanup.deregisterJdbcDrivers(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/infrastructure/store/user/db/DatabaseUserStore.java:304: statement = connection.prepareStatement(query); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/infrastructure/JdbcCleanup.java:14:public final class JdbcCleanup { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/infrastructure/JdbcCleanup.java:15: private static final ELogger LOG = ELoggerFactory.getLogger(JdbcCleanup.class); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/infrastructure/JdbcCleanup.java:17: private JdbcCleanup() { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/infrastructure/JdbcCleanup.java:20: public static void deregisterJdbcDrivers() { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/infrastructure/JdbcCleanup.java:27: if (driver.getClass().getClassLoader() == JdbcCleanup.class.getClassLoader()) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/infrastructure/JdbcCleanup.java:29: LOG.debug("Deregistering JDBC driver " + driver.getClass().getName()); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/infrastructure/JdbcCleanup.java:68: return Optional.of(Class.forName("com.mysql.jdbc.AbandonedConnectionCleanupThread")); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/infrastructure/JdbcCleanup.java:71: return Optional.of(Class.forName("com.mysql.cj.jdbc.AbandonedConnectionCleanupThread")); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/token/DatabaseTokenPersister.java:323: try (PreparedStatement stmt = conn.prepareStatement(sql.toString())) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/token/DatabaseTokenPersister.java:370: try (PreparedStatement stmt = conn.prepareStatement(sql, new String[]{this.tokenColTokenId})) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/token/DatabaseTokenPersister.java:380: "An error occurred that might be caused by an outdated Oracle JDBC driver. Please update to a driver with version > 6.", work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/token/DatabaseTokenPersister.java:665: try (PreparedStatement stmt = conn.prepareStatement(update.get())) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/token/DatabaseTokenPersister.java:875: try (PreparedStatement stmt = conn.prepareStatement(updateStatement.get())) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/token/DatabaseTokenPersister.java:892: try (PreparedStatement stmt = conn.prepareStatement(sql)) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/token/DatabaseTokenPersister.java:948: try (PreparedStatement stmt = conn.prepareStatement(sql.toString())) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/token/DatabaseTokenPersister.java:1193: try (PreparedStatement stmt = conn.prepareStatement(sql.toString())) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/persistency/token/DatabaseTokenPersister.java:1405: try (PreparedStatement stmt = conn.prepareStatement(sql.toString())) { ## FileOutputStream|Files\.write|writeString\(|copy\( work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/base/misc/io/Files.java:19: java.nio.file.Files.copy(sourceFile.toPath(), targetFile.toPath(), StandardCopyOption.REPLACE_EXISTING); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/servicecontainer/app/application/service/radius/wrapper/internal/tinyradius/TinyRadiusPacketDecoder.java:84: System.arraycopy(encryptedPass, i, lastBlock, 0, 16); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/servicecontainer/app/application/service/radius/wrapper/internal/tinyradius/TinyRadiusPacketDecoder.java:102: System.arraycopy(encryptedPass, 0, passtrunc, 0, length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/saml2/domain/model/sp/Saml2Attributes.java:19: this.attributes = immutableCopy(attributes); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/saml2/domain/model/sp/Saml2Attributes.java:45: private static Map> immutableCopy(Map> attributes) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/saml2/domain/model/sp/Saml2Attributes.java:56: return immutableCopy(this.attributes); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/security/util/crypto/GCMAESCipher.java:59: System.arraycopy(plaintext, 0, output, 0, outputLen); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/security/util/crypto/CBCAESCipher.java:55: System.arraycopy(plaintext, 0, output, 0, outputLen); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/security/util/crypto/AesGcmIvIntegratedCipher.java:27: System.arraycopy(iv, 0, combinedIvAndCipherText, 0, iv.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/security/util/crypto/AesGcmIvIntegratedCipher.java:28: System.arraycopy(encryptedBytes, 0, combinedIvAndCipherText, iv.length, encryptedBytes.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/security/util/crypto/AesGcmIvIntegratedCipher.java:38: System.arraycopy(dataToDecrypt, 0, iv, 0, iv.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/security/util/crypto/AesGcmIvIntegratedCipher.java:40: System.arraycopy(dataToDecrypt, 12, encryptedText, 0, encryptedText.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/security/util/crypto/AesCbcIvIntegratedCipher.java:27: System.arraycopy(iv, 0, combinedIvAndCipherText, 0, iv.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/security/util/crypto/AesCbcIvIntegratedCipher.java:28: System.arraycopy(encryptedBytes, 0, combinedIvAndCipherText, iv.length, encryptedBytes.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/security/util/crypto/AesCbcIvIntegratedCipher.java:39: System.arraycopy(dataToDecrypt, 0, iv, 0, iv.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/security/util/crypto/AesCbcIvIntegratedCipher.java:41: System.arraycopy(dataToDecrypt, 16, encryptedText, 0, encryptedText.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/security/util/crypto/CipherText.java:101: System.arraycopy(prefixBytes, 0, result, 1, prefixBytes.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/security/util/crypto/Aes128GcmCipher.java:72: System.arraycopy(encryptedData, 0, iv, 0, iv.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/flow/impl/domain/model/step/StepResultImpl.java:119: result.additionalAttributes(this.additionalAttributes.copy()); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/authentication/impl/domain/model/step/AuthenticationStepResultImpl.java:86: builder.additionalAttributes(this.stepResult.additionalAttributes().copy()); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/flow/api/domain/model/step/AdditionalAttributes.java:70: public AdditionalAttributes copy() { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/plugin/framework/application/service/builder/lombok/LombokBuilder.java:28: builderTarget = BuilderTargetTypeWrapper.forPluginCopy(objectToCopy); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/plugin/framework/application/service/builder/lombok/LombokBuilder.java:30: builderTarget = BuilderTargetTypeWrapper.forObjectCopy(objectToCopy); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/plugin/framework/application/service/builder/BuilderTargetTypeWrapper.java:28: public static BuilderTargetTypeWrapper forPluginCopy(Object target) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/plugin/framework/application/service/builder/BuilderTargetTypeWrapper.java:36: public static BuilderTargetTypeWrapper forObjectCopy(Object target) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/plugin/configeditor/ui/ConfigUtil.java:21: Files.write(temp, bytes, StandardOpenOption.CREATE); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/infrastructure/jackson/OptionalStringSerializer.java:16: gen.writeString(value.value()); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/infrastructure/jackson/LinkSerializer.java:13: jgen.writeString(link.getUri().toString()); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/infrastructure/jackson/InstantSerializer.java:15: gen.writeString(Dates.toString(zonedDateTime)); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/common/infrastructure/jackson/LocalDateSerializer.java:13: gen.writeString(Dates.toString(value)); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/plugin/configeditor/ui/dialog/SaveWorkingCopyDialog.java:46: this.app.getConfigContainer().saveWorkingCopy(this.app.getWorkingCopyDirectory(), IamSystemProperties.activeConfigFormat()); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/plugin/configeditor/ui/dialog/ApplyConfigThread.java:74: tempFile = TempConfigFiles.writeTempConfigFile(this.app, this.configMetadata, deploymentDirectory); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/plugin/configeditor/util/FontAwesomeExtended.java:190: COPY(61637), work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/plugin/configeditor/data/ConfigContainer.java:183: public void saveWorkingCopy(String workingCopyDirectory, ConfigFormat configFormat) { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/impl/authen/radius/RadiusAttributePasswordExpiry.java:201: System.arraycopy(asBytes, 0, buffer, buffer.length - asBytes.length, asBytes.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/tanserver/core/impl/HashedTokenListImpl.java:33: System.arraycopy(tokenHashes, 0, this.tokenHashes, 0, this.tokenHashes.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/tanserver/core/impl/PlainTokenListImpl.java:14: System.arraycopy(tokens, 0, this.tokens, 0, this.tokens.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/tanserver/core/impl/TokenHashImpl.java:22: System.arraycopy(buffer, offset, this.hashValue, 0, length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/tanserver/core/TokenType.java:169: System.arraycopy(temp, 0, res, 0, iInResult); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/renderer/CsvRenderer.java:119: this.writeString(stringToWrite, out); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/renderer/CsvRenderer.java:130: this.writeString(header, out); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/renderer/CsvRenderer.java:138: this.writeString(td, out); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/renderer/CsvRenderer.java:143: this.writeString(this.getFieldDelimiter(), out); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/renderer/CsvRenderer.java:147: this.writeString("\n", out); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/renderer/CsvRenderer.java:150: private void writeString(String str, OutputStream out) throws IOException { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/authen/result/AuthenticationFailedChallenge.java:218: System.arraycopy(indices, 0, is, 0, is.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/airlock/AirlockControlCookie.java:70: System.arraycopy(this.setCredentialsSet, 0, roles, 0, this.setCredentialsSet.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/ServletUtils.java:118: System.arraycopy(oldVals, 0, valArray, 0, oldVals.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/ticket/codec/esp/EspSignTicketDecoder.java:136: System.arraycopy(cookieBytes, 1 + getSignatureLength(), bodyBytes, 0, bodyBytes.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/ticket/codec/esp/EspSignTicketDecoder.java:138: System.arraycopy(cookieBytes, 1, signature, 0, signature.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/ticket/codec/esp/EspSignTicketEncoder.java:180: System.arraycopy(securedBytes, 0, result, 1, securedBytes.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/ticket/codec/esp/EspSignTicketEncoder.java:241: System.arraycopy(ba1, 0, res, 0, ba1.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/ticket/codec/esp/EspSignTicketEncoder.java:242: System.arraycopy(ba2, 0, res, ba1.length, ba2.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/ticket/codec/ByteUtils.java:27: System.arraycopy(ba1, 0, res, 0, ba1.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/ticket/codec/ByteUtils.java:28: System.arraycopy(ba2, 0, res, ba1.length, ba2.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/ticket/codec/sign/RSASignTicketDecoder.java:49: System.arraycopy(ticketBytes, this.getSignatureLength(), bodyBytes, 0, bodyBytes.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/ticket/codec/sign/RSASignTicketDecoder.java:51: System.arraycopy(ticketBytes, 0, signature, 0, signature.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/application/webserver/infrastructure/deploy/util/inlined/LegacyCookieProcessor.java:483: System.arraycopy(original, bc.getStart(), copy, 0, len); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/password/hash/PasswordHistoryHash.java:255: System.arraycopy(input, hashStartIndex, this.currentPwdHash, 0, hashLength); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/password/hash/PasswordHistoryHash.java:266: System.arraycopy(input, currentHistoryIndex + 4, hashValue, 0, hashLen); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/oathotp/OathOtpUtilities.java:109: System.arraycopy(bArray, 1, ret, 0, ret.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/radius/wrapper/internal/tinyradius/TinyRadiusPasswordEncoderUtil.java:33: System.arraycopy(userPass, 0, userPassBytes, 0, 128); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/radius/wrapper/internal/tinyradius/TinyRadiusPasswordEncoderUtil.java:51: System.arraycopy(userPassBytes, 0, encryptedPass, 0, userPassBytes.length); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/admin/application/configuration/password/PasswordGeneratorConfig.java:134: Files.write(f, byteArray); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/admin/application/service/license/LicenseDeployer.java:23: Files.writeString(tempFile.toPath(), licenseText, StandardCharsets.UTF_8); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/admin/application/service/token/generic/GenericTokenService.java:114: GenericToken copy = token.copy(); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/admin/infrastructure/resource/prot/token/VascoLicenseResource.java:164: Files.copy(inputStream, dpxFile.get().toPath(), StandardCopyOption.REPLACE_EXISTING); work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/admin/api/domain/model/token/generic/GenericToken.java:47: public GenericToken copy() { work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/admin/domain/model/token/matrixcard/generator/MatrixCardWriterImpl.java:108: Files.write(tmpFile.toPath(), renderedBytes); ## ZipInputStream|TarArchiveInputStream work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/ticket/codec/ByteUtils.java:7:import java.util.zip.GZIPInputStream; work/source-derived/airlock-iam-8.6.1/decompiled/com/airlock/iam/core/misc/util/ticket/codec/ByteUtils.java:116: GZIPInputStream is = new GZIPInputStream(new ByteArrayInputStream(inbytes));