public final class KeyTab extends Object
 A Kerberos JAAS login module that obtains long term secret keys from a
 keytab file should use this class. The login module will store
 an instance of this class in the private credential set of a
 Subject during the commit phase of the
 authentication process.
 
 If a KeyTab object is obtained from getUnboundInstance()
 or getUnboundInstance(java.io.File), it is unbound and thus can be
 used by any service principal. Otherwise, if it's obtained from
 getInstance(KerberosPrincipal) or
 getInstance(KerberosPrincipal, java.io.File), it is bound to the
 specific service principal and can only be used by it.
 
 Please note the constructors getInstance() and
 getInstance(java.io.File) were created when there was no support
 for unbound keytabs. These methods should not be used anymore. An object
 created with either of these methods are considered to be bound to an
 unknown principal, which means, its isBound() returns true and
 getPrincipal() returns null.
 
 It might be necessary for the application to be granted a
 PrivateCredentialPermission if it needs to access the KeyTab
 instance from a Subject. This permission is not needed when the
 application depends on the default JGSS Kerberos mechanism to access the
 KeyTab. In that case, however, the application will need an appropriate
 ServicePermission.
 
The keytab file format is described at http://www.ioplex.com/utilities/keytab.txt.
| Modifier and Type | Method and Description | 
|---|---|
| boolean | equals(Object other)Compares the specified Object with this KeyTab for equality. | 
| boolean | exists()Checks if the keytab file exists. | 
| static KeyTab | getInstance()Returns the default  KeyTabinstance that is bound
 to an unknown service principal. | 
| static KeyTab | getInstance(File file)Returns a  KeyTabinstance from aFileobject
 that is bound to an unknown service principal. | 
| static KeyTab | getInstance(KerberosPrincipal princ)Returns the default  KeyTabinstance that is bound
 to the specified service principal. | 
| static KeyTab | getInstance(KerberosPrincipal princ,
           File file)Returns a  KeyTabinstance from aFileobject
 that is bound to the specified service principal. | 
| KerberosKey[] | getKeys(KerberosPrincipal principal)Returns fresh keys for the given Kerberos principal. | 
| KerberosPrincipal | getPrincipal()Returns the service principal this  KeyTabobject
 is bound to. | 
| static KeyTab | getUnboundInstance()Returns the default unbound  KeyTabinstance. | 
| static KeyTab | getUnboundInstance(File file)Returns an unbound  KeyTabinstance from aFileobject. | 
| int | hashCode()Returns a hashcode for this KeyTab. | 
| boolean | isBound()Returns if the keytab is bound to a principal | 
| String | toString()Returns a string representation of the object. | 
public static KeyTab getInstance(File file)
KeyTab instance from a File object
 that is bound to an unknown service principal.
 
 The result of this method is never null. This method only associates
 the returned KeyTab object with the file and does not read it.
 
 Developers should call getInstance(KerberosPrincipal,File)
 when the bound service principal is known.
file - the keytab File object, must not be nullNullPointerException - if the file argument is nullpublic static KeyTab getUnboundInstance(File file)
KeyTab instance from a File
 object.
 
 The result of this method is never null. This method only associates
 the returned KeyTab object with the file and does not read it.
file - the keytab File object, must not be nullNullPointerException - if the file argument is nullpublic static KeyTab getInstance(KerberosPrincipal princ, File file)
KeyTab instance from a File object
 that is bound to the specified service principal.
 
 The result of this method is never null. This method only associates
 the returned KeyTab object with the file and does not read it.
princ - the bound service principal, must not be nullfile - the keytab File object, must not be nullNullPointerException - if either of the arguments is nullpublic static KeyTab getInstance()
KeyTab instance that is bound
 to an unknown service principal.
 
 The result of this method is never null. This method only associates
 the returned KeyTab object with the default keytab file and
 does not read it.
 
 Developers should call getInstance(KerberosPrincipal)
 when the bound service principal is known.
public static KeyTab getUnboundInstance()
KeyTab instance.
 
 The result of this method is never null. This method only associates
 the returned KeyTab object with the default keytab file and
 does not read it.
public static KeyTab getInstance(KerberosPrincipal princ)
KeyTab instance that is bound
 to the specified service principal.
 
 The result of this method is never null. This method only associates
 the returned KeyTab object with the default keytab file and
 does not read it.
princ - the bound service principal, must not be nullNullPointerException - if princ is nullpublic KerberosKey[] getKeys(KerberosPrincipal principal)
 Implementation of this method should make sure the returned keys match
 the latest content of the keytab file. The result is a newly created
 copy that can be modified by the caller without modifying the keytab
 object. The caller should destroy the
 result keys after they are used.
 
 Please note that the keytab file can be created after the
 KeyTab object is instantiated and its content may change over
 time. Therefore, an application should call this method only when it
 needs to use the keys. Any previous result from an earlier invocation
 could potentially be expired.
 
If there is any error (say, I/O error or format error) during the reading process of the KeyTab file, a saved result should be returned. If there is no saved result (say, this is the first time this method is called, or, all previous read attempts failed), an empty array should be returned. This can make sure the result is not drastically changed during the (probably slow) update of the keytab file.
 Each time this method is called and the reading of the file succeeds
 with no exception (say, I/O error or file format error),
 the result should be saved for principal. The implementation can
 also save keys for other principals having keys in the same keytab object
 if convenient.
 
Any unsupported key read from the keytab is ignored and not included in the result.
If this keytab is bound to a specific principal, calling this method on another principal will return an empty array.
principal - the Kerberos principal, must not be null.NullPointerException - if the principal
 argument is nullSecurityException - if a security manager exists and the read
 access to the keytab file is not permittedpublic boolean exists()
The caller can use the result to determine if it should fallback to another mechanism to read the keys.
SecurityException - if a security manager exists and the read
 access to the keytab file is not permittedpublic String toString()
ObjecttoString method returns a string that
 "textually represents" this object. The result should
 be a concise but informative representation that is easy for a
 person to read.
 It is recommended that all subclasses override this method.
 
 The toString method for class Object
 returns a string consisting of the name of the class of which the
 object is an instance, the at-sign character `@', and
 the unsigned hexadecimal representation of the hash code of the
 object. In other words, this method returns a string equal to the
 value of:
 
getClass().getName() + '@' + Integer.toHexString(hashCode())
public int hashCode()
hashCode in class ObjectKeyTabObject.equals(java.lang.Object), 
System.identityHashCode(java.lang.Object)public boolean equals(Object other)
KeyTab and the two
 KeyTab instances are equivalent.equals in class Objectother - the Object to compare toObject.hashCode(), 
HashMappublic KerberosPrincipal getPrincipal()
KeyTab object
 is bound to. Returns null if it's not bound.
 
 Please note the deprecated constructors create a KeyTab object bound for
 some unknown principal. In this case, this method also returns null.
 User can call isBound() to verify this case.
public boolean isBound()
 Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2015, Oracle and/or its affiliates.  All rights reserved.