Home » openjdk-7 » javax » net » ssl » [javadoc | source]

    1   /*
    2    * Copyright (c) 1997, 2005, Oracle and/or its affiliates. All rights reserved.
    3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    4    *
    5    * This code is free software; you can redistribute it and/or modify it
    6    * under the terms of the GNU General Public License version 2 only, as
    7    * published by the Free Software Foundation.  Oracle designates this
    8    * particular file as subject to the "Classpath" exception as provided
    9    * by Oracle in the LICENSE file that accompanied this code.
   10    *
   11    * This code is distributed in the hope that it will be useful, but WITHOUT
   12    * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   13    * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   14    * version 2 for more details (a copy is included in the LICENSE file that
   15    * accompanied this code).
   16    *
   17    * You should have received a copy of the GNU General Public License version
   18    * 2 along with this work; if not, write to the Free Software Foundation,
   19    * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   20    *
   21    * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   22    * or visit www.oracle.com if you need additional information or have any
   23    * questions.
   24    */
   25   
   26   
   27   package javax.net.ssl;
   28   
   29   import java.util.Enumeration;
   30   
   31   
   32   /**
   33    * A <code>SSLSessionContext</code> represents a set of
   34    * <code>SSLSession</code>s associated with a single entity. For example,
   35    * it could be associated with a server or client who participates in many
   36    * sessions concurrently.
   37    * <p>
   38    * Not all environments will contain session contexts.
   39    * <p>
   40    * There are <code>SSLSessionContext</code> parameters that affect how
   41    * sessions are stored:
   42    * <UL>
   43    *      <LI>Sessions can be set to expire after a specified
   44    *      time limit.
   45    *      <LI>The number of sessions that can be stored in context
   46    *      can be limited.
   47    * </UL>
   48    * A session can be retrieved based on its session id, and all session id's
   49    * in a <code>SSLSessionContext</code> can be listed.
   50    *
   51    * @see SSLSession
   52    *
   53    * @since 1.4
   54    * @author Nathan Abramson
   55    * @author David Brownell
   56    */
   57   public interface SSLSessionContext {
   58   
   59       /**
   60        * Returns the <code>SSLSession</code> bound to the specified session id.
   61        *
   62        * @param sessionId the Session identifier
   63        * @return the <code>SSLSession</code> or null if
   64        * the specified session id does not refer to a valid SSLSession.
   65        *
   66        * @throws NullPointerException if <code>sessionId</code> is null.
   67        */
   68       public SSLSession getSession(byte[] sessionId);
   69   
   70       /**
   71        * Returns an Enumeration of all session id's grouped under this
   72        * <code>SSLSessionContext</code>.
   73        *
   74        * @return an enumeration of all the Session id's
   75        */
   76       public Enumeration<byte[]> getIds();
   77   
   78       /**
   79        * Sets the timeout limit for <code>SSLSession</code> objects grouped
   80        * under this <code>SSLSessionContext</code>.
   81        * <p>
   82        * If the timeout limit is set to 't' seconds, a session exceeds the
   83        * timeout limit 't' seconds after its creation time.
   84        * When the timeout limit is exceeded for a session, the
   85        * <code>SSLSession</code> object is invalidated and future connections
   86        * cannot resume or rejoin the session.
   87        * A check for sessions exceeding the timeout is made immediately whenever
   88        * the timeout limit is changed for this <code>SSLSessionContext</code>.
   89        *
   90        * @param seconds the new session timeout limit in seconds; zero means
   91        *          there is no limit.
   92        *
   93        * @exception IllegalArgumentException if the timeout specified is < 0.
   94        * @see #getSessionTimeout
   95        */
   96       public void setSessionTimeout(int seconds)
   97                    throws IllegalArgumentException;
   98   
   99       /**
  100        * Returns the timeout limit of <code>SSLSession</code> objects grouped
  101        * under this <code>SSLSessionContext</code>.
  102        * <p>
  103        * If the timeout limit is set to 't' seconds, a session exceeds the
  104        * timeout limit 't' seconds after its creation time.
  105        * When the timeout limit is exceeded for a session, the
  106        * <code>SSLSession</code> object is invalidated and future connections
  107        * cannot resume or rejoin the session.
  108        * A check for sessions exceeding the timeout limit is made immediately
  109        * whenever the timeout limit is changed for this
  110        * <code>SSLSessionContext</code>.
  111        *
  112        * @return the session timeout limit in seconds; zero means there is no
  113        * limit.
  114        * @see #setSessionTimeout
  115        */
  116       public int getSessionTimeout();
  117   
  118       /**
  119        * Sets the size of the cache used for storing
  120        * <code>SSLSession</code> objects grouped under this
  121        * <code>SSLSessionContext</code>.
  122        *
  123        * @param size the new session cache size limit; zero means there is no
  124        * limit.
  125        * @exception IllegalArgumentException if the specified size is < 0.
  126        * @see #getSessionCacheSize
  127        */
  128       public void setSessionCacheSize(int size)
  129                    throws IllegalArgumentException;
  130   
  131       /**
  132        * Returns the size of the cache used for storing
  133        * <code>SSLSession</code> objects grouped under this
  134        * <code>SSLSessionContext</code>.
  135        *
  136        * @return size of the session cache; zero means there is no size limit.
  137        * @see #setSessionCacheSize
  138        */
  139       public int getSessionCacheSize();
  140   
  141   }

Home » openjdk-7 » javax » net » ssl » [javadoc | source]