APIdia Launch Partner
Top Description Fields Constructors Methods
sun.security.krb5

public Class Realm

extends Object
implements Cloneable
Class Inheritance
All Implemented Interfaces
java.lang.Cloneable
Imports
sun.security.krb5.internal.Krb5, sun.security.util.*, java.io.IOException, java.util.*, sun.security.krb5.internal.util.KerberosString

Implements the ASN.1 Realm type. Realm ::= GeneralString This class is immutable.

Field Summary

Modifier and TypeField and Description
private final String

Constructor Summary

AccessConstructor and Description
public
Realm(String name)

public
Realm(DerValue
a Der-encoded data.
encoding
)

Constructs a Realm object.

Method Summary

Modifier and TypeMethod and Description
public byte[]

Returns:

the byte array of encoded KrbCredInfo object.
asn1Encode
()

Encodes a Realm object.

public Object
clone()

Overrides java.lang.Object.clone.

Creates and returns a copy of this object.

public boolean
equals(Object obj)

Overrides java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

public static Realm
public static String[]

Returns:

array of realms including at least cRealm as the first element
getRealmsList
(String
the initiating realm, not null
cRealm
,
String
the target realm, not null, not equals to cRealm
sRealm
)

Returns an array of realms that may be traversed to obtain a TGT from the initiating realm cRealm to the target realm sRealm.

public int
hashCode()

Overrides java.lang.Object.hashCode.

Returns a hash code value for this object.

protected static boolean
public static Realm

Returns:

an instance of Realm.
parse
(DerInputStream
the Der input stream value, which contains one or more marshaled value.
data
,
byte
tag number.
explicitTag
,
boolean
indicate if this data field is optional
optional
)

Parse (unmarshal) a realm from a DER input stream.

private static String[]

Returns:

array of realms including at least cRealm as the first element
parseCapaths
(String
the initiating realm
cRealm
,
String
the target realm, not the same as cRealm
sRealm
)

Parses the [capaths] stanza of the configuration file for a list of realms to traverse to obtain credentials from the initiating realm cRealm to the target realm sRealm.

private static String[]

Returns:

array of realms including cRealm as the first element
parseHierarchy
(String
the initiating realm
cRealm
,
String
the target realm, not the same as cRealm
sRealm
)

Build a list of realm that can be traversed to obtain credentials from the initiating realm cRealm for a service in the target realm sRealm.

protected static String
public static String
public static String
private static String
subStringFrom(String[] components, int from)

Creates a realm name using components from the given position.

public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.

Inherited from java.lang.Object:
finalizegetClassnotifynotifyAllwaitwaitwait

Field Detail

realmback to summary
private final String realm

Constructor Detail

Realmback to summary
public Realm(String name) throws RealmException
Realmback to summary
public Realm(DerValue encoding) throws Asn1Exception, RealmException, IOException

Constructs a Realm object.

Parameters
encoding:DerValue

a Der-encoded data.

Exceptions
Asn1Exception:
if an error occurs while decoding an ASN1 encoded data.
RealmException:
if an error occurs while parsing a Realm object.
IOException:
if an I/O error occurs while reading encoded data.

Method Detail

asn1Encodeback to summary
public byte[] asn1Encode() throws Asn1Exception, IOException

Encodes a Realm object.

Returns:byte[]

the byte array of encoded KrbCredInfo object.

Exceptions
Asn1Exception:
if an error occurs while decoding an ASN1 encoded data.
IOException:
if an I/O error occurs while reading encoded data.
cloneback to summary
public Object clone()

Overrides java.lang.Object.clone.

Doc from java.lang.Object.clone.

Creates and returns a copy of this object. The precise meaning of "copy" may depend on the class of the object. The general intent is that, for any object x, the expression:

x.clone() != x
will be true, and that the expression:
x.clone().getClass() == x.getClass()
will be true, but these are not absolute requirements. While it is typically the case that:
x.clone().equals(x)
will be true, this is not an absolute requirement.

By convention, the returned object should be obtained by calling super.clone. If a class and all of its superclasses (except Object) obey this convention, it will be the case that x.clone().getClass() == x.getClass().

By convention, the object returned by this method should be independent of this object (which is being cloned). To achieve this independence, it may be necessary to modify one or more fields of the object returned by super.clone before returning it. Typically, this means copying any mutable objects that comprise the internal "deep structure" of the object being cloned and replacing the references to these objects with references to the copies. If a class contains only primitive fields or references to immutable objects, then it is usually the case that no fields in the object returned by super.clone need to be modified.

equalsback to summary
public boolean equals(Object obj)

Overrides java.lang.Object.equals.

Doc from java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.

Annotations
@Override
getDefaultback to summary
public static Realm getDefault() throws RealmException
getRealmsListback to summary
public static String[] getRealmsList(String cRealm, String sRealm)

Returns an array of realms that may be traversed to obtain a TGT from the initiating realm cRealm to the target realm sRealm.
This method would read [capaths] to create a path, or generate a hierarchical path if [capaths] does not contain a sub-stanza for cRealm or the sub-stanza does not contain a tag for sRealm.
The returned list would never be null, and it always contains cRealm as the head entry. sRealm is not included as the tail.

Parameters
cRealm:String

the initiating realm, not null

sRealm:String

the target realm, not null, not equals to cRealm

Returns:String[]

array of realms including at least cRealm as the first element

hashCodeback to summary
public int hashCode()

Overrides java.lang.Object.hashCode.

Doc from java.lang.Object.hashCode.

Returns a hash code value for this object. This method is supported for the benefit of hash tables such as those provided by java.util.HashMap.

The general contract of hashCode is:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the equals method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
Annotations
@Override
isValidRealmStringback to summary
protected static boolean isValidRealmString(String name)
parseback to summary
public static Realm parse(DerInputStream data, byte explicitTag, boolean optional) throws Asn1Exception, IOException, RealmException

Parse (unmarshal) a realm from a DER input stream. This form parsing might be used when expanding a value which is part of a constructed sequence and uses explicitly tagged type.

Parameters
data:DerInputStream

the Der input stream value, which contains one or more marshaled value.

explicitTag:byte

tag number.

optional:boolean

indicate if this data field is optional

Returns:Realm

an instance of Realm.

Exceptions
Asn1Exception:
on error.
parseCapathsback to summary
private static String[] parseCapaths(String cRealm, String sRealm) throws KrbException

Parses the [capaths] stanza of the configuration file for a list of realms to traverse to obtain credentials from the initiating realm cRealm to the target realm sRealm. For a given client realm C there is a tag C in [capaths] whose subtag S has a value which is a (possibly partial) path from C to S. When the path is partial, it contains only the tail of the full path. Values of other subtags will be used to build the full path. The value "." means a direct path from C to S. If realm S does not appear as a subtag, there is no path defined here. The implementation ignores all values which equals to C or S, or a "." in multiple values, or any duplicated realm names. When a path value has more than two realms, they can be specified with multiple key-value pairs each having a single value, but the order must not change. For example: [capaths] TIVOLI.COM = { IBM.COM = IBM_LDAPCENTRAL.COM MOONLITE.ORG IBM_LDAPCENTRAL.COM = LDAPCENTRAL.NET LDAPCENTRAL.NET = . } TIVOLI.COM has a direct path to LDAPCENTRAL.NET, which has a direct path to IBM_LDAPCENTRAL.COM. It also has a partial path to IBM.COM being "IBM_LDAPCENTRAL.COM MOONLITE.ORG". Merging these info together, a full path from TIVOLI.COM to IBM.COM will be TIVOLI.COM -> LDAPCENTRAL.NET -> IBM_LDAPCENTRAL.COM -> IBM_LDAPCENTRAL.COM -> MOONLITE.ORG Please note the sRealm IBM.COM does not appear in the path.

Parameters
cRealm:String

the initiating realm

sRealm:String

the target realm, not the same as cRealm

Returns:String[]

array of realms including at least cRealm as the first element

Exceptions
KrbException:
if the config does not contain a sub-stanza for cRealm in [capaths] or the sub-stanza does not contain sRealm as a tag
parseHierarchyback to summary
private static String[] parseHierarchy(String cRealm, String sRealm)

Build a list of realm that can be traversed to obtain credentials from the initiating realm cRealm for a service in the target realm sRealm.

Parameters
cRealm:String

the initiating realm

sRealm:String

the target realm, not the same as cRealm

Returns:String[]

array of realms including cRealm as the first element

parseRealmback to summary
protected static String parseRealm(String name) throws RealmException
parseRealmAtSeparatorback to summary
public static String parseRealmAtSeparator(String name) throws RealmException
parseRealmComponentback to summary
public static String parseRealmComponent(String name)
subStringFromback to summary
private static String subStringFrom(String[] components, int from)

Creates a realm name using components from the given position. For example, subStringFrom({"A", "B", "C"}, 1) is "B.C".

toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object. Satisfying this method's contract implies a non-null result must be returned.