Search in sources :

Example 1 with SSLRandomizer

use of org.apache.solr.util.RandomizeSSL.SSLRandomizer in project lucene-solr by apache.

the class SolrTestCaseJ4 method buildSSLConfig.

private static SSLTestConfig buildSSLConfig() {
    SSLRandomizer sslRandomizer = SSLRandomizer.getSSLRandomizerForClass(RandomizedContext.current().getTargetClass());
    if (Constants.MAC_OS_X) {
        // see SOLR-9039
        // If a solution is found to remove this, please make sure to also update
        // TestMiniSolrCloudClusterSSL.testSslAndClientAuth as well.
        sslRandomizer = new SSLRandomizer(sslRandomizer.ssl, 0.0D, (sslRandomizer.debug + " w/ MAC_OS_X supressed clientAuth"));
    }
    SSLTestConfig result = sslRandomizer.createSSLTestConfig();
    log.info("Randomized ssl ({}) and clientAuth ({}) via: {}", result.isSSLMode(), result.isClientAuthMode(), sslRandomizer.debug);
    return result;
}
Also used : SSLTestConfig(org.apache.solr.util.SSLTestConfig) SSLRandomizer(org.apache.solr.util.RandomizeSSL.SSLRandomizer)

Example 2 with SSLRandomizer

use of org.apache.solr.util.RandomizeSSL.SSLRandomizer in project lucene-solr by apache.

the class TestSSLRandomization method testSSLRandomizer.

public void testSSLRandomizer() {
    SSLRandomizer r;
    // for some cases, we know exactly what the config should be regardless of randomization factors
    SSLTestConfig conf;
    for (Class c : Arrays.asList(FullyAnnotated.class, InheritedFullyAnnotated.class, GrandchildInheritedEmptyAnnotatationWithOverride.class)) {
        r = SSLRandomizer.getSSLRandomizerForClass(c);
        assertEquals(c.toString(), 0.42D, r.ssl, 0.0D);
        assertEquals(c.toString(), 0.33D, r.clientAuth, 0.0D);
        assertTrue(c.toString(), r.debug.contains("foo"));
    }
    for (Class c : Arrays.asList(NotAnnotated.class, InheritedNotAnnotated.class)) {
        r = SSLRandomizer.getSSLRandomizerForClass(c);
        assertEquals(c.toString(), 0.0D, r.ssl, 0.0D);
        assertEquals(c.toString(), 0.0D, r.clientAuth, 0.0D);
        assertTrue(c.toString(), r.debug.contains("not specified"));
        conf = r.createSSLTestConfig();
        assertEquals(c.toString(), false, conf.isSSLMode());
        assertEquals(c.toString(), false, conf.isClientAuthMode());
    }
    for (Class c : Arrays.asList(Suppressed.class, InheritedSuppressed.class, InheritedAnnotationButSuppressed.class, InheritedSuppressedWithIgnoredAnnotation.class)) {
        r = SSLRandomizer.getSSLRandomizerForClass(Suppressed.class);
        assertEquals(c.toString(), 0.0D, r.ssl, 0.0D);
        assertEquals(c.toString(), 0.0D, r.clientAuth, 0.0D);
        assertTrue(c.toString(), r.debug.contains("SuppressSSL"));
        assertTrue(c.toString(), r.debug.contains("fakeBugUrl"));
        conf = r.createSSLTestConfig();
        assertEquals(c.toString(), false, conf.isSSLMode());
        assertEquals(c.toString(), false, conf.isClientAuthMode());
    }
    for (Class c : Arrays.asList(EmptyAnnotated.class, InheritedEmptyAnnotated.class)) {
        r = SSLRandomizer.getSSLRandomizerForClass(c);
        assertEquals(c.toString(), RandomizeSSL.DEFAULT_ODDS, r.ssl, 0.0D);
        assertEquals(c.toString(), RandomizeSSL.DEFAULT_ODDS, r.clientAuth, 0.0D);
    }
    for (Class c : Arrays.asList(SimplyAnnotated.class, InheritedEmptyAnnotatationWithOverride.class)) {
        r = SSLRandomizer.getSSLRandomizerForClass(c);
        assertEquals(c.toString(), 0.5D, r.ssl, 0.0D);
        assertEquals(c.toString(), 0.5D, r.clientAuth, 0.0D);
    }
    r = SSLRandomizer.getSSLRandomizerForClass(MinAnnotated.class);
    assertEquals(0.0D, r.ssl, 0.0D);
    assertEquals(0.0D, r.clientAuth, 0.0D);
    conf = r.createSSLTestConfig();
    assertEquals(false, conf.isSSLMode());
    assertEquals(false, conf.isClientAuthMode());
    r = SSLRandomizer.getSSLRandomizerForClass(MaxAnnotated.class);
    assertEquals(1.0D, r.ssl, 0.0D);
    assertEquals(1.0D, r.clientAuth, 0.0D);
    conf = r.createSSLTestConfig();
    assertEquals(true, conf.isSSLMode());
    assertEquals(true, conf.isClientAuthMode());
    r = SSLRandomizer.getSSLRandomizerForClass(SSlButNoClientAuthAnnotated.class);
    assertEquals(0.42D, r.ssl, 0.0D);
    assertEquals(0.42D, r.clientAuth, 0.0D);
    r = SSLRandomizer.getSSLRandomizerForClass(ClientAuthButNoSSLAnnotated.class);
    assertEquals(RandomizeSSL.DEFAULT_ODDS, r.ssl, 0.0D);
    assertEquals(0.42D, r.clientAuth, 0.0D);
    for (Class c : Arrays.asList(SSLOutOfRangeAnnotated.class, ClientAuthOutOfRangeAnnotated.class, InheritedOutOfRangeAnnotated.class)) {
        expectThrows(IllegalArgumentException.class, () -> {
            Object trash = SSLRandomizer.getSSLRandomizerForClass(c);
        });
    }
}
Also used : SSLTestConfig(org.apache.solr.util.SSLTestConfig) SSLRandomizer(org.apache.solr.util.RandomizeSSL.SSLRandomizer) BeforeClass(org.junit.BeforeClass)

Aggregations

SSLRandomizer (org.apache.solr.util.RandomizeSSL.SSLRandomizer)2 SSLTestConfig (org.apache.solr.util.SSLTestConfig)2 BeforeClass (org.junit.BeforeClass)1