Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: ae960c6cf66d095e30fbedcbd9107b8adba8d354 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
//
//  ========================================================================
//  Copyright (c) 1995-2012 Mort Bay Consulting Pty. Ltd.
//  ------------------------------------------------------------------------
//  All rights reserved. This program and the accompanying materials
//  are made available under the terms of the Eclipse Public License v1.0
//  and Apache License v2.0 which accompanies this distribution.
//
//      The Eclipse Public License is available at
//      http://www.eclipse.org/legal/epl-v10.html
//
//      The Apache License v2.0 is available at
//      http://www.opensource.org/licenses/apache2.0.php
//
//  You may elect to redistribute this code under either of these licenses.
//  ========================================================================
//

package org.eclipse.jetty.client;

import java.io.InputStream;
import java.lang.reflect.Constructor;
import java.security.KeyStore;
import java.security.cert.CRL;
import java.util.Collection;

import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.HandlerCollection;
import org.eclipse.jetty.server.ssl.SslConnector;
import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.toolchain.test.MavenTestingUtils;
import org.eclipse.jetty.util.security.CertificateUtils;
import org.eclipse.jetty.util.ssl.SslContextFactory;

public abstract class SslValidationTestBase //extends ContentExchangeTest
{
    protected static Class<? extends SslConnector> __klass;
    protected static int __konnector;

    // certificate is valid until Jan 1, 2050
    private String _keypath = MavenTestingUtils.getTargetFile("test-policy/validation/jetty-valid.keystore").getAbsolutePath();
    private String _trustpath = MavenTestingUtils.getTargetFile("test-policy/validation/jetty-trust.keystore").getAbsolutePath();
    private String _clientpath = MavenTestingUtils.getTargetFile("test-policy/validation/jetty-client.keystore").getAbsolutePath();
    private String _crlpath = MavenTestingUtils.getTargetFile("test-policy/validation/crlfile.pem").getAbsolutePath();
    private String _password = "OBF:1wnl1sw01ta01z0f1tae1svy1wml";
    
    
    protected void configureServer(Server server)
        throws Exception
    {
//        setProtocol("https");
//
//        SslContextFactory srvFactory = new SslContextFactory() {
//            @Override
//            protected KeyStore getKeyStore(InputStream storeStream, String storePath, String storeType, String storeProvider, String storePassword) throws Exception
//            {
//                return CertificateUtils.getKeyStore(storeStream, storePath, storeType, storeProvider, storePassword);
//            }
//
//            @Override
//            protected Collection<? extends CRL> loadCRL(String crlPath) throws Exception
//            {
//                return CertificateUtils.loadCRL(crlPath);
//            }
//        };
//        srvFactory.setValidateCerts(true);
//        srvFactory.setCrlPath(_crlpath);
//        srvFactory.setNeedClientAuth(true);
//
//        srvFactory.setKeyStorePath(_keypath);
//        srvFactory.setKeyStorePassword(_password);
//        srvFactory.setKeyManagerPassword(_password);
//        
//        srvFactory.setTrustStore(_trustpath);
//        srvFactory.setTrustStorePassword(_password);
//
//        Constructor<? extends SslConnector> constructor = __klass.getConstructor(SslContextFactory.class);
//        SslConnector connector = constructor.newInstance(srvFactory);
//        connector.setMaxIdleTime(5000);
//        server.addConnector(connector);
//
//        Handler handler = new TestHandler(getBasePath());
//
//        ServletContextHandler root = new ServletContextHandler();
//        root.setContextPath("/");
//        root.setResourceBase(getBasePath());
//        ServletHolder servletHolder = new ServletHolder( new DefaultServlet() );
//        servletHolder.setInitParameter( "gzip", "true" );
//        root.addServlet( servletHolder, "/*" );
//
//        HandlerCollection handlers = new HandlerCollection();
//        handlers.setHandlers(new Handler[]{handler, root});
//        server.setHandler( handlers );
//    }
//
//    @Override
//    protected void configureClient(HttpClient client)
//        throws Exception
//    {
//        client.setConnectorType(__konnector);
//
//        SslContextFactory cf = client.getSslContextFactory();
//        cf.setValidateCerts(true);
//        cf.setCrlPath(_crlpath);
//        
//        cf.setKeyStorePath(_clientpath);
//        cf.setKeyStorePassword(_password);
//        cf.setKeyManagerPassword(_password);
//        
//        cf.setTrustStore(_trustpath);
//        cf.setTrustStorePassword(_password);
    }
}

Back to the top