diff --git a/.gitignore b/.gitignore index 952176a35e04f577769320759087c1d5756767f0..6baf716956c0195040c147b4d6eea9f59ec43ba8 100644 --- a/.gitignore +++ b/.gitignore @@ -225,3 +225,4 @@ build.gradle gradlew gradlew.bat .gradle/ +src/main/resources/db/demo-oxalis-as4-db-changelog.xml diff --git a/oxalis-api/pom.xml b/oxalis-api/pom.xml index 5dc6a24b459ca71ef24cf25e6ada411a7eb10730..82121e485ecd675d5f570da30cf60e418d67c8a0 100644 --- a/oxalis-api/pom.xml +++ b/oxalis-api/pom.xml @@ -28,7 +28,7 @@ oxalis dk.erst.oxalis - 1.1.1-cdcd75c57f1c18846d6950469e8f4fb53b3b8584 + 1.2.0-RC-482e9dc69c402ff235d9a34dba51310428093e10 oxalis-api diff --git a/oxalis-commons/pom.xml b/oxalis-commons/pom.xml index bd34fd363053391190afae3520faaf9e247e7118..41a219d2ce654a8da775738cac368197f161b64d 100644 --- a/oxalis-commons/pom.xml +++ b/oxalis-commons/pom.xml @@ -27,7 +27,7 @@ dk.erst.oxalis oxalis - 1.1.1-cdcd75c57f1c18846d6950469e8f4fb53b3b8584 + 1.2.0-RC-482e9dc69c402ff235d9a34dba51310428093e10 oxalis-commons diff --git a/oxalis-commons/src/main/java/network/oxalis/commons/security/CertificateModule.java b/oxalis-commons/src/main/java/network/oxalis/commons/security/CertificateModule.java index 0cf7db7713aaa5960dbd49cfb18e61634b286973..a0c5f5cf90fb50862779e8c82717771e3a6ed56d 100644 --- a/oxalis-commons/src/main/java/network/oxalis/commons/security/CertificateModule.java +++ b/oxalis-commons/src/main/java/network/oxalis/commons/security/CertificateModule.java @@ -61,7 +61,7 @@ public class CertificateModule extends OxalisModule { Path path = settings.getPath(KeyStoreConf.PATH, confFolder); try { - KeyStore keystore = KeyStore.getInstance("JKS"); + KeyStore keystore = KeyStore.getInstance(settings.getString(KeyStoreConf.TYPE)); if (Files.notExists(path)) throw new OxalisLoadingException(String.format("Unable to find keystore at '%s'.", path)); diff --git a/oxalis-commons/src/main/java/network/oxalis/commons/security/KeyStoreConf.java b/oxalis-commons/src/main/java/network/oxalis/commons/security/KeyStoreConf.java index dc59eea78cee286a248987149b03587678792ab3..5f4886050100f2ef088920947d57bb35b2b5f583 100644 --- a/oxalis-commons/src/main/java/network/oxalis/commons/security/KeyStoreConf.java +++ b/oxalis-commons/src/main/java/network/oxalis/commons/security/KeyStoreConf.java @@ -35,7 +35,7 @@ import network.oxalis.api.settings.Title; public enum KeyStoreConf { @Path("oxalis.keystore.path") - @DefaultValue("oxalis-keystore.jks") + @DefaultValue("oxalis-keystore.p12") PATH, @Path("oxalis.keystore.password") @@ -43,6 +43,10 @@ public enum KeyStoreConf { @Secret PASSWORD, + @Path("oxalis.keystore.type") + @DefaultValue("PKCS12") + TYPE, + @Path("oxalis.keystore.key.alias") @DefaultValue("ap") KEY_ALIAS, diff --git a/oxalis-commons/src/test/java/network/oxalis/commons/security/CertificateModuleTest.java b/oxalis-commons/src/test/java/network/oxalis/commons/security/CertificateModuleTest.java new file mode 100644 index 0000000000000000000000000000000000000000..a8a5e631000523072b2c5d268c8f7a51408c3485 --- /dev/null +++ b/oxalis-commons/src/test/java/network/oxalis/commons/security/CertificateModuleTest.java @@ -0,0 +1,88 @@ +package network.oxalis.commons.security; + +import com.google.inject.Guice; +import com.google.inject.Injector; +import com.typesafe.config.ConfigFactory; +import network.oxalis.api.lang.OxalisLoadingException; +import network.oxalis.api.settings.Path; +import network.oxalis.commons.config.ConfigModule; +import network.oxalis.commons.filesystem.FileSystemModule; +import org.testng.Assert; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import java.lang.reflect.Field; +import java.net.URISyntaxException; +import java.net.URL; +import java.nio.file.Paths; +import java.security.KeyStore; +import java.security.PrivateKey; +import java.security.cert.X509Certificate; + +public class CertificateModuleTest { + + private String keystorePathConf; + private String keystoreTypeConf; + private String keystorePasswordConf; + + @BeforeMethod + public void setup() { + keystorePathConf = getConfPath(KeyStoreConf.PATH); + keystoreTypeConf = getConfPath(KeyStoreConf.TYPE); + keystorePasswordConf = getConfPath(KeyStoreConf.PASSWORD); + } + + @Test + public void testCanConfigureJKSKeystore() throws URISyntaxException { + testCanConfigureKeystore("oxalis-selfsigned.jks", "JKS", "changeit"); + } + + @Test + public void testDefaultsToPKCS12KeystoreType() throws URISyntaxException { + testCanConfigureKeystore("oxalis-selfsigned.p12", null, "changeit"); + } + + @Test + public void testCanConfigurePKCS12Keystore() throws URISyntaxException { + testCanConfigureKeystore("oxalis-selfsigned.p12", "PKCS12", "changeit"); + } + + private void testCanConfigureKeystore(String keystorePath, String keystoreType, String keystorePassword) throws URISyntaxException { + try { + URL url = this.getClass().getClassLoader().getResource(keystorePath); + Assert.assertNotNull(url); + + System.setProperty(keystorePathConf, Paths.get(url.toURI()).toString()); + if(keystoreType != null) { + System.setProperty(keystoreTypeConf, keystoreType); + } + System.setProperty(keystorePasswordConf, keystorePassword); + // invalidate config caches to force reload + ConfigFactory.invalidateCaches(); + + Injector injector = Guice.createInjector(new FileSystemModule(), new ConfigModule(), new CertificateModule()); + + KeyStore keystore = injector.getInstance(KeyStore.class); + Assert.assertNotNull(keystore); + Assert.assertEquals(keystore.getType(), keystoreType != null ? keystoreType : "PKCS12"); + + Assert.assertNotNull(injector.getInstance(X509Certificate.class)); + Assert.assertNotNull(injector.getInstance(PrivateKey.class)); + } finally { + System.clearProperty(keystorePathConf); + System.clearProperty(keystoreTypeConf); + System.clearProperty(keystorePasswordConf); + // invalidate config caches to force reload + ConfigFactory.invalidateCaches(); + } + } + + private String getConfPath(T key) { + try { + Field f = key.getClass().getField((key).name()); + return f.getAnnotation(Path.class).value(); + } catch (NoSuchFieldException e) { + throw new OxalisLoadingException(e.getMessage(), e); + } + } +} diff --git a/oxalis-commons/src/test/resources/oxalis-selfsigned.jks b/oxalis-commons/src/test/resources/oxalis-selfsigned.jks new file mode 100644 index 0000000000000000000000000000000000000000..368589cdb942467dd7e0c1dbde15713abaa751e6 Binary files /dev/null and b/oxalis-commons/src/test/resources/oxalis-selfsigned.jks differ diff --git a/oxalis-commons/src/test/resources/oxalis-selfsigned.p12 b/oxalis-commons/src/test/resources/oxalis-selfsigned.p12 new file mode 100644 index 0000000000000000000000000000000000000000..43b9082b29204e0f834bbc2e11a8a6122f690ce7 Binary files /dev/null and b/oxalis-commons/src/test/resources/oxalis-selfsigned.p12 differ diff --git a/oxalis-dist/oxalis-distribution/pom.xml b/oxalis-dist/oxalis-distribution/pom.xml index f2b03888ab1f333306e36cd4ea10deb0d533bfb8..ff28aa34b2778c12bcbdca581851e25d77f19751 100644 --- a/oxalis-dist/oxalis-distribution/pom.xml +++ b/oxalis-dist/oxalis-distribution/pom.xml @@ -28,7 +28,7 @@ oxalis dk.erst.oxalis - 1.1.1-cdcd75c57f1c18846d6950469e8f4fb53b3b8584 + 1.2.0-RC-482e9dc69c402ff235d9a34dba51310428093e10 ../../pom.xml diff --git a/oxalis-dist/oxalis-server/pom.xml b/oxalis-dist/oxalis-server/pom.xml index 4976c7b1de2cdcf5c236171ac1b86770f8d8775b..f7e26a525563d653f631d27562d8822f29f43a1a 100644 --- a/oxalis-dist/oxalis-server/pom.xml +++ b/oxalis-dist/oxalis-server/pom.xml @@ -25,7 +25,7 @@ oxalis dk.erst.oxalis - 1.1.1-cdcd75c57f1c18846d6950469e8f4fb53b3b8584 + 1.2.0-RC-482e9dc69c402ff235d9a34dba51310428093e10 ../../pom.xml 4.0.0 diff --git a/oxalis-dist/oxalis-standalone/pom.xml b/oxalis-dist/oxalis-standalone/pom.xml index ad3616858a2b34c1dbf6f0201cdfca655c8dafa1..79b25a4aa150e686800a6ffb1ec1c7994f044d9b 100644 --- a/oxalis-dist/oxalis-standalone/pom.xml +++ b/oxalis-dist/oxalis-standalone/pom.xml @@ -27,7 +27,7 @@ dk.erst.oxalis oxalis - 1.1.1-cdcd75c57f1c18846d6950469e8f4fb53b3b8584 + 1.2.0-RC-482e9dc69c402ff235d9a34dba51310428093e10 ../../pom.xml diff --git a/oxalis-dist/oxalis-war/pom.xml b/oxalis-dist/oxalis-war/pom.xml index 12e92659f9286898c208e7ddbf699a1cbdecc2b4..7c72930155b92f06fac1da2ee51417955cbb59a6 100644 --- a/oxalis-dist/oxalis-war/pom.xml +++ b/oxalis-dist/oxalis-war/pom.xml @@ -3,7 +3,7 @@ oxalis dk.erst.oxalis - 1.1.1-cdcd75c57f1c18846d6950469e8f4fb53b3b8584 + 1.2.0-RC-482e9dc69c402ff235d9a34dba51310428093e10 ../../pom.xml 4.0.0 diff --git a/oxalis-extension/oxalis-extension-example/pom.xml b/oxalis-extension/oxalis-extension-example/pom.xml index 950c622e37fa764f7460bb0b6210a8357e57bc1c..fba9b149b8cc366afadaaa647eb9be85882a94d8 100644 --- a/oxalis-extension/oxalis-extension-example/pom.xml +++ b/oxalis-extension/oxalis-extension-example/pom.xml @@ -25,7 +25,7 @@ oxalis-extension dk.erst.oxalis - 1.1.1-cdcd75c57f1c18846d6950469e8f4fb53b3b8584 + 1.2.0-RC-482e9dc69c402ff235d9a34dba51310428093e10 4.0.0 diff --git a/oxalis-extension/oxalis-extension-testbed/pom.xml b/oxalis-extension/oxalis-extension-testbed/pom.xml index ff43c743dd97fb12bdbd2fd250141a79f0b8c1fb..41c1561d87bc89ed7be74db7ec721c626546b91f 100644 --- a/oxalis-extension/oxalis-extension-testbed/pom.xml +++ b/oxalis-extension/oxalis-extension-testbed/pom.xml @@ -3,7 +3,7 @@ oxalis-extension dk.erst.oxalis - 1.1.1-cdcd75c57f1c18846d6950469e8f4fb53b3b8584 + 1.2.0-RC-482e9dc69c402ff235d9a34dba51310428093e10 4.0.0 diff --git a/oxalis-extension/pom.xml b/oxalis-extension/pom.xml index 2384718c9a7f7e3fbc5ce1ad89f7569a5dfa92bf..c0f3845c5e9e4db3b91d5e6917d1eb59418bfdb3 100644 --- a/oxalis-extension/pom.xml +++ b/oxalis-extension/pom.xml @@ -25,7 +25,7 @@ oxalis dk.erst.oxalis - 1.1.1-cdcd75c57f1c18846d6950469e8f4fb53b3b8584 + 1.2.0-RC-482e9dc69c402ff235d9a34dba51310428093e10 4.0.0 diff --git a/oxalis-inbound/pom.xml b/oxalis-inbound/pom.xml index c2d5d19b3b394e2978591b103b9d20889d02b639..a88e2c1e317f7717e64b1021c18de884af87f7a0 100644 --- a/oxalis-inbound/pom.xml +++ b/oxalis-inbound/pom.xml @@ -27,7 +27,7 @@ dk.erst.oxalis oxalis - 1.1.1-cdcd75c57f1c18846d6950469e8f4fb53b3b8584 + 1.2.0-RC-482e9dc69c402ff235d9a34dba51310428093e10 oxalis-inbound diff --git a/oxalis-inbound/src/main/java/network/oxalis/inbound/OxalisGuiceContextListener.java b/oxalis-inbound/src/main/java/network/oxalis/inbound/OxalisGuiceContextListener.java index 76b0ad2af21b5d18ab906e413112dc49e26c4a68..64e3038816f3dba2e1f5e1e776c4b8a30b71bfaf 100644 --- a/oxalis-inbound/src/main/java/network/oxalis/inbound/OxalisGuiceContextListener.java +++ b/oxalis-inbound/src/main/java/network/oxalis/inbound/OxalisGuiceContextListener.java @@ -22,10 +22,18 @@ package network.oxalis.inbound; +import com.google.inject.Guice; import com.google.inject.Injector; import com.google.inject.servlet.GuiceServletContextListener; +import com.typesafe.config.Config; import lombok.extern.slf4j.Slf4j; +import network.oxalis.commons.config.ConfigModule; +import network.oxalis.commons.filesystem.FileSystemModule; import network.oxalis.commons.guice.GuiceModuleLoader; +import org.bouncycastle.jce.provider.BouncyCastleProvider; + +import java.security.Provider; +import java.security.Security; /** * Wires our object graph together using Google Guice. @@ -38,9 +46,35 @@ import network.oxalis.commons.guice.GuiceModuleLoader; @Slf4j public class OxalisGuiceContextListener extends GuiceServletContextListener { + private static final String PREFER_BOUNCYCASTLE_PROVIDER = "oxalis.security.provider.prefer.bouncycastle"; private Injector injector; public OxalisGuiceContextListener() { + // Initial loading of configuration. Added to be able to read configuration property for bouncycastle preference here + // If BouncyCastle is to be the preferred Security provider it needs to be initialized as soon as possible. + Injector initialInjector = Guice.createInjector(new FileSystemModule(), new ConfigModule()); + Config config = initialInjector.getInstance(Config.class); + + boolean preferBC = config.hasPath(PREFER_BOUNCYCASTLE_PROVIDER) && config.getBoolean(PREFER_BOUNCYCASTLE_PROVIDER); + + if(preferBC) { + final Provider[] providers = Security.getProviders(); + if (providers != null && providers.length > 0) { + if (Security.getProvider(BouncyCastleProvider.PROVIDER_NAME) != null) { + for (int i = 0; i < providers.length; i++) { + Provider provider = providers[i]; + if (BouncyCastleProvider.PROVIDER_NAME.equals(provider.getName())) { + log.info("Found BC provider at position {}", i + 1); + } + } + log.info("Found already registered BC provider, removing it to insert at position 1"); + Security.removeProvider(BouncyCastleProvider.PROVIDER_NAME); + } + } + Security.insertProviderAt(new BouncyCastleProvider(), 1); + log.info("Configured BouncyCastle as the preferred security Provider"); + } + try { this.injector = GuiceModuleLoader.initiate(); } catch (Exception e) { diff --git a/oxalis-inbound/src/main/resources/reference.conf b/oxalis-inbound/src/main/resources/reference.conf index 89ebd547b6b133662bf820ba15f9e260d50ada00..090921830cdaf0f1b929ed9726d7ec7d3dc65700 100644 --- a/oxalis-inbound/src/main/resources/reference.conf +++ b/oxalis-inbound/src/main/resources/reference.conf @@ -2,3 +2,5 @@ oxalis.module.inbound.servlet.class = network.oxalis.inbound.InboundModule # This defaults is necessary as the code in ConfigModule looks for a defaults conf, but since we removed defaults from AS2, we need to add one here, so startup does not fail. From UAN-318 - Fjern AS2 protokollen fra Oxalis AP. AS2 no longer supported --> defaults.as2NotSupported=networkAS2NoLongerSupportedInOxalis + +defaults.oxalis.security.provider.prefer.bouncycastle = true \ No newline at end of file diff --git a/oxalis-inbound/src/test/java/network/oxalis/inbound/OxalisGuiceContextListenerTest.java b/oxalis-inbound/src/test/java/network/oxalis/inbound/OxalisGuiceContextListenerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..21b9cea914987fe6cadb3ba63941164f85af8295 --- /dev/null +++ b/oxalis-inbound/src/test/java/network/oxalis/inbound/OxalisGuiceContextListenerTest.java @@ -0,0 +1,85 @@ +package network.oxalis.inbound; + +import com.google.inject.Injector; +import com.typesafe.config.ConfigFactory; +import network.oxalis.test.jetty.AbstractJettyServerTest; +import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.testng.Assert; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import java.security.Provider; +import java.security.Security; + +public class OxalisGuiceContextListenerTest { + + @BeforeMethod + public void setup() { + + } + + @Test + public void testConfiguresBouncyCastleAsPreferredSecurityProviderByDefault() { + Security.removeProvider(BouncyCastleProvider.PROVIDER_NAME); + Injector injector = new OxalisGuiceContextListener().getInjector(); + final Provider[] providers = Security.getProviders(); + Assert.assertNotNull(providers); + Assert.assertTrue(providers.length > 0, "Should have security providers"); + Assert.assertEquals(providers[0].getName(), BouncyCastleProvider.PROVIDER_NAME); + } + + @Test + public void testMovesBouncyCastleProviderToFirstSecurityProviderIfAlreadyPresent() { + Security.addProvider(new BouncyCastleProvider()); + Provider[] providers = Security.getProviders(); + Assert.assertNotNull(providers); + Assert.assertTrue(providers.length > 0, "Should have security providers"); + Assert.assertNotEquals(providers[0].getName(), BouncyCastleProvider.PROVIDER_NAME); + + Injector injector = new OxalisGuiceContextListener().getInjector(); + providers = Security.getProviders(); + Assert.assertNotNull(providers); + Assert.assertTrue(providers.length > 0, "Should have security providers"); + Assert.assertEquals(providers[0].getName(), BouncyCastleProvider.PROVIDER_NAME); + } + + @Test + public void testDoesNotConfigureBouncyCastleAsPreferredSecurityProviderIfDisabledThroughConfiguration() { + Security.removeProvider(BouncyCastleProvider.PROVIDER_NAME); + try { + // override configuration to disable default bouncy castle preference + System.setProperty("oxalis.path.conf", "prefer-jce-provider-conf"); + // invalidate config caches to force reload + ConfigFactory.invalidateCaches(); + + Injector injector = new OxalisGuiceContextListener().getInjector(); + final Provider[] providers = Security.getProviders(); + Assert.assertNotNull(providers); + Assert.assertTrue(providers.length > 0, "Should have security providers"); + Assert.assertNotEquals(providers[0].getName(), BouncyCastleProvider.PROVIDER_NAME); + } finally { + System.clearProperty("oxalis.path.conf"); + ConfigFactory.invalidateCaches(); + } + } + + @Test + public void testDoesNotConfigureBouncyCastleAsPreferredSecurityProviderIfDisabledThroughConfigurationSystemProperty() { + Security.removeProvider(BouncyCastleProvider.PROVIDER_NAME); + try { + System.setProperty("oxalis.security.provider.prefer.bouncycastle", "false"); + // invalidate config caches to force reload + ConfigFactory.invalidateCaches(); + + Injector injector = new OxalisGuiceContextListener().getInjector(); + final Provider[] providers = Security.getProviders(); + Assert.assertNotNull(providers); + Assert.assertTrue(providers.length > 0, "Should have security providers"); + Assert.assertNotEquals(providers[0].getName(), BouncyCastleProvider.PROVIDER_NAME); + } finally { + System.clearProperty("oxalis.security.provider.prefer.bouncycastle"); + ConfigFactory.invalidateCaches(); + } + } +} diff --git a/oxalis-inbound/src/test/resources/oxalis_home/prefer-jce-provider-conf/oxalis.conf b/oxalis-inbound/src/test/resources/oxalis_home/prefer-jce-provider-conf/oxalis.conf new file mode 100644 index 0000000000000000000000000000000000000000..fce8a5633c07ec65cd0889aa55629d5242b768b0 --- /dev/null +++ b/oxalis-inbound/src/test/resources/oxalis_home/prefer-jce-provider-conf/oxalis.conf @@ -0,0 +1 @@ +oxalis.security.provider.prefer.bouncycastle = false \ No newline at end of file diff --git a/oxalis-legacy/oxalis-document-sniffer/pom.xml b/oxalis-legacy/oxalis-document-sniffer/pom.xml index 89573ce49deda23e3f4c6a575bc3148f16d52d99..6c7d187d9fc4e66cecb4c05cfc720b9d99c7d059 100644 --- a/oxalis-legacy/oxalis-document-sniffer/pom.xml +++ b/oxalis-legacy/oxalis-document-sniffer/pom.xml @@ -25,7 +25,7 @@ oxalis dk.erst.oxalis - 1.1.1-cdcd75c57f1c18846d6950469e8f4fb53b3b8584 + 1.2.0-RC-482e9dc69c402ff235d9a34dba51310428093e10 ../../pom.xml 4.0.0 diff --git a/oxalis-legacy/oxalis-persistence/pom.xml b/oxalis-legacy/oxalis-persistence/pom.xml index 733bdafb1f9b223da28faaa92423e57bfe8ba575..bf928ea2846d3068c1a540d82136f31b0e801ad7 100644 --- a/oxalis-legacy/oxalis-persistence/pom.xml +++ b/oxalis-legacy/oxalis-persistence/pom.xml @@ -24,7 +24,7 @@ oxalis dk.erst.oxalis - 1.1.1-cdcd75c57f1c18846d6950469e8f4fb53b3b8584 + 1.2.0-RC-482e9dc69c402ff235d9a34dba51310428093e10 ../../pom.xml 4.0.0 diff --git a/oxalis-legacy/oxalis-statistics/pom.xml b/oxalis-legacy/oxalis-statistics/pom.xml index 908a2de2aededcc9bfdb4ecffe0070307cabddb3..5813f060667da49a09fe914b10a691c7c6da0c40 100644 --- a/oxalis-legacy/oxalis-statistics/pom.xml +++ b/oxalis-legacy/oxalis-statistics/pom.xml @@ -25,7 +25,7 @@ oxalis dk.erst.oxalis - 1.1.1-cdcd75c57f1c18846d6950469e8f4fb53b3b8584 + 1.2.0-RC-482e9dc69c402ff235d9a34dba51310428093e10 ../../pom.xml 4.0.0 diff --git a/oxalis-outbound/pom.xml b/oxalis-outbound/pom.xml index 8b9259d564bba01c94e21636ffa8feb00cfa5523..c9bc27fd79e0a5b6bc03e7b13594d353d145b45e 100644 --- a/oxalis-outbound/pom.xml +++ b/oxalis-outbound/pom.xml @@ -27,7 +27,7 @@ dk.erst.oxalis oxalis - 1.1.1-cdcd75c57f1c18846d6950469e8f4fb53b3b8584 + 1.2.0-RC-482e9dc69c402ff235d9a34dba51310428093e10 oxalis-outbound diff --git a/oxalis-test/pom.xml b/oxalis-test/pom.xml index 5c00e092eda9fa2ce1d089ba034deef80d967c69..a80b5cc30d8416a411528c89673c45a6d4d90d20 100644 --- a/oxalis-test/pom.xml +++ b/oxalis-test/pom.xml @@ -24,7 +24,7 @@ oxalis dk.erst.oxalis - 1.1.1-cdcd75c57f1c18846d6950469e8f4fb53b3b8584 + 1.2.0-RC-482e9dc69c402ff235d9a34dba51310428093e10 4.0.0 diff --git a/oxalis-test/src/main/resources/dummy/app_0000000001.p12 b/oxalis-test/src/main/resources/dummy/app_0000000001.p12 new file mode 100644 index 0000000000000000000000000000000000000000..8b430d4d55748a051fd0ed7e58d115fc8fff1d27 Binary files /dev/null and b/oxalis-test/src/main/resources/dummy/app_0000000001.p12 differ diff --git a/pom.xml b/pom.xml index b7f5624c8b253eb4b34fbd7682fcad3bfd6c7c8c..863e3e8c29735512a253f06e741f7715f75131c9 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ dk.erst.oxalis oxalis - 1.1.1-cdcd75c57f1c18846d6950469e8f4fb53b3b8584 + 1.2.0-RC-482e9dc69c402ff235d9a34dba51310428093e10 pom Oxalis :: Parent @@ -60,7 +60,7 @@ 1.8 1.18.24 1.9 - 1.1.1-cdcd75c57f1c18846d6950469e8f4fb53b3b8584 + 1.2.0-RC-482e9dc69c402ff235d9a34dba51310428093e10 2.0.6 1.3.5 31.1-jre @@ -107,12 +107,6 @@ ${metainf-services.version} provided - - org.jetbrains - annotations - RELEASE - compile -