View Javadoc

1   // Copyright (C) 2005 - 2010 Philip Aston
2   // All rights reserved.
3   //
4   // This file is part of The Grinder software distribution. Refer to
5   // the file LICENSE which is part of The Grinder distribution for
6   // licensing details. The Grinder distribution is available on the
7   // Internet at http://grinder.sourceforge.net/
8   //
9   // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
10  // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
11  // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
12  // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
13  // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
14  // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
15  // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
16  // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
17  // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
18  // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
19  // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
20  // OF THE POSSIBILITY OF SUCH DAMAGE.
21  
22  package net.grinder.common;
23  
24  import javax.net.ssl.SSLContext;
25  
26  
27  /**
28   * Factory for {@link SSLContext}s.
29   *
30   * @author Philip Aston
31   */
32  public interface SSLContextFactory {
33  
34    /**
35     * Returns an appropriate JSSE {@link SSLContext}. This can be used to obtain
36     * an {@link javax.net.ssl.SSLSocketFactory}.
37     *
38     * <p>
39     * The Grinder optimises client SSL processing to increase the number of
40     * simultaneous client threads it is reasonable to run. It uses an insecure
41     * source of random information, and does not perform checks on the
42     * certificates presented by a server. <b>Do not use The Grinder to implement
43     * any SSL communication that you want to be secure.</b>
44     * </p>
45     *
46     * @return The SSL context.
47     * @exception SSLContextFactory.SSLContextFactoryException
48     *              If the SSLContext could not be found/created.
49     * @see net.grinder.script.SSLControl
50     */
51    SSLContext getSSLContext()
52      throws SSLContextFactory.SSLContextFactoryException;
53  
54    /**
55     * Exception that indicates problem creating an SSLContext.
56     */
57    public static final class SSLContextFactoryException
58      extends GrinderException {
59  
60      /**
61       * Constructor.
62       *
63       * @param message Helpful message.
64       */
65      public SSLContextFactoryException(String message) {
66        super(message);
67      }
68  
69      /**
70       * Constructor.
71       *
72       * @param message Helpful message.
73       * @param t A nested <code>Throwable</code>
74       */
75      public SSLContextFactoryException(String message, Throwable t) {
76        super(message, t);
77      }
78    }
79  }
80