View Javadoc
1   /*
2    * Copyright (c) 2000, 2012, 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  package sun.security.jgss.spi;
27  
28  import org.ietf.jgss.*;
29  import java.security.Provider;
30  
31  /**
32   * This interface is implemented by a mechanism specific credential
33   * element. A GSSCredential is conceptually a container class of several
34   * credential elements from different mechanisms.
35   *
36   * @author Mayank Upadhyay
37   */
38  public interface GSSCredentialSpi {
39  
40      public Provider getProvider();
41  
42      /**
43       * Called to invalidate this credential element and release
44       * any system recourses and cryptographic information owned
45       * by the credential.
46       *
47       * @exception GSSException with major codes NO_CRED and FAILURE
48       */
49      public void dispose() throws GSSException;
50  
51      /**
52       * Returns the principal name for this credential. The name
53       * is in mechanism specific format.
54       *
55       * @return GSSNameSpi representing principal name of this credential
56       * @exception GSSException may be thrown
57       */
58      public GSSNameSpi getName() throws GSSException;
59  
60      /**
61       * Returns the init lifetime remaining.
62       *
63       * @return the init lifetime remaining in seconds
64       * @exception GSSException may be thrown
65       */
66      public int getInitLifetime() throws GSSException;
67  
68  
69      /**
70       * Returns the accept lifetime remaining.
71       *
72       * @return the accept lifetime remaining in seconds
73       * @exception GSSException may be thrown
74       */
75      public int getAcceptLifetime() throws GSSException;
76  
77      /**
78       * Determines if this credential element can be used by a context
79       * initiator.
80       * @return true if it can be used for initiating contexts
81       */
82      public boolean isInitiatorCredential() throws GSSException;
83  
84      /**
85       * Determines if this credential element can be used by a context
86       * acceptor.
87       * @return true if it can be used for accepting contexts
88       */
89      public boolean isAcceptorCredential() throws GSSException;
90  
91      /**
92       * Returns the oid representing the underlying credential
93       * mechanism oid.
94       *
95       * @return the Oid for this credential mechanism
96       * @exception GSSException may be thrown
97       */
98      public Oid getMechanism();
99  
100     /**
101      * Impersonates another client.
102      *
103      * @param name the client to impersonate
104      * @return the new credential
105      * @exception GSSException may be thrown
106      */
107     public GSSCredentialSpi impersonate(GSSNameSpi name) throws GSSException;
108 }