APIdia Launch Partner
Top Description Fields Constructors Methods
com.sun.security.sasl

pack-priv final Class PlainClient

extends Object
implements SaslClient
Class Inheritance
All Implemented Interfaces
javax.security.sasl.SaslClient
Imports
javax.security.sasl.*

Implements the PLAIN SASL client mechanism. (RFC 2595)
Author
Rosanna Lee

Field Summary

Modifier and TypeField and Description
private String
private String
private boolean
private byte[]
private static byte

Constructor Summary

AccessConstructor and Description
pack-priv
PlainClient(String
A possibly null string representing the principal for which authorization is being granted; if null, same as authenticationID
authorizationID
,
String
A non-null string representing the principal being authenticated. pw is associated with this principal.
authenticationID
,
byte[]
A non-null byte[] containing the password.
pw
)

Creates a SASL mechanism with client credentials that it needs to participate in Plain authentication exchange with the server.

Method Summary

Modifier and TypeMethod and Description
private void
public void
dispose()

Implements javax.security.sasl.SaslClient.dispose.

Disposes of any system resources or security-sensitive information the SaslClient might be using.

public byte[]

Returns:

A non-null byte array containing the response to be sent to the server.
evaluateChallenge
(byte[]
Ignored
challengeData
)

Implements javax.security.sasl.SaslClient.evaluateChallenge.

Retrieves the initial response for the SASL command, which for PLAIN is the concatenation of authorization ID, authentication ID and password, with each component separated by the US-ASCII <NUL> byte.

protected void
finalize()

Overrides java.lang.Object.finalize.

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.

public String

Returns:

The string "PLAIN".
getMechanismName
()

Implements javax.security.sasl.SaslClient.getMechanismName.

Retrieves this mechanism's name for to initiate the PLAIN protocol exchange.

public Object

Returns:

value of property; only QOP is applicable to PLAIN.
getNegotiatedProperty
(String propName)

Implements javax.security.sasl.SaslClient.getNegotiatedProperty.

Retrieves the negotiated property.

public boolean
hasInitialResponse()

Implements javax.security.sasl.SaslClient.hasInitialResponse.

Determines whether this mechanism has an optional initial response.

public boolean

Returns:

true if has completed; false otherwise;
isComplete
()

Implements javax.security.sasl.SaslClient.isComplete.

Determines whether this mechanism has completed.

public byte[]
unwrap(byte[] incoming, int offset, int len)

Implements javax.security.sasl.SaslClient.unwrap.

Unwraps the incoming buffer.

public byte[]
wrap(byte[] outgoing, int offset, int len)

Implements javax.security.sasl.SaslClient.wrap.

Wraps the outgoing buffer.

Inherited from java.lang.Object:
cloneequalsgetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

authenticationIDback to summary
private String authenticationID
authorizationIDback to summary
private String authorizationID
completedback to summary
private boolean completed
pwback to summary
private byte[] pw
SEPback to summary
private static byte SEP

Constructor Detail

PlainClientback to summary
pack-priv PlainClient(String authorizationID, String authenticationID, byte[] pw) throws SaslException

Creates a SASL mechanism with client credentials that it needs to participate in Plain authentication exchange with the server.

Parameters
authorizationID:String

A possibly null string representing the principal for which authorization is being granted; if null, same as authenticationID

authenticationID:String

A non-null string representing the principal being authenticated. pw is associated with this principal.

pw:byte[]

A non-null byte[] containing the password.

Method Detail

clearPasswordback to summary
private void clearPassword()
disposeback to summary
public void dispose() throws SaslException

Implements javax.security.sasl.SaslClient.dispose.

Doc from javax.security.sasl.SaslClient.dispose.

Disposes of any system resources or security-sensitive information the SaslClient might be using. Invoking this method invalidates the SaslClient instance. This method is idempotent.

Exceptions
SaslException:
If a problem was encountered while disposing the resources.
evaluateChallengeback to summary
public byte[] evaluateChallenge(byte[] challengeData)

Implements javax.security.sasl.SaslClient.evaluateChallenge.

Retrieves the initial response for the SASL command, which for PLAIN is the concatenation of authorization ID, authentication ID and password, with each component separated by the US-ASCII <NUL> byte.

Parameters
challengeData:byte[]

Ignored

Returns:byte[]

A non-null byte array containing the response to be sent to the server.

Exceptions
IllegalStateException:
if authentication already completed
finalizeback to summary
protected void finalize()

Overrides java.lang.Object.finalize.

Doc from java.lang.Object.finalize.

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. A subclass overrides the finalize method to dispose of system resources or to perform other cleanup.

When running in a Java virtual machine in which finalization has been disabled or removed, the garbage collector will never call finalize(). In a Java virtual machine in which finalization is enabled, the garbage collector might call finalize only after an indefinite delay.

The general contract of finalize is that it is invoked if and when the Java virtual machine has determined that there is no longer any means by which this object can be accessed by any thread that has not yet died, except as a result of an action taken by the finalization of some other object or class which is ready to be finalized. The finalize method may take any action, including making this object available again to other threads; the usual purpose of finalize, however, is to perform cleanup actions before the object is irrevocably discarded. For example, the finalize method for an object that represents an input/output connection might perform explicit I/O transactions to break the connection before the object is permanently discarded.

The finalize method of class Object performs no special action; it simply returns normally. Subclasses of Object may override this definition.

The Java programming language does not guarantee which thread will invoke the finalize method for any given object. It is guaranteed, however, that the thread that invokes finalize will not be holding any user-visible synchronization locks when finalize is invoked. If an uncaught exception is thrown by the finalize method, the exception is ignored and finalization of that object terminates.

After the finalize method has been invoked for an object, no further action is taken until the Java virtual machine has again determined that there is no longer any means by which this object can be accessed by any thread that has not yet died, including possible actions by other objects or classes which are ready to be finalized, at which point the object may be discarded.

The finalize method is never invoked more than once by a Java virtual machine for any given object.

Any exception thrown by the finalize method causes the finalization of this object to be halted, but is otherwise ignored.

Annotations
@SuppressWarnings:removal
getMechanismNameback to summary
public String getMechanismName()

Implements javax.security.sasl.SaslClient.getMechanismName.

Retrieves this mechanism's name for to initiate the PLAIN protocol exchange.

Returns:String

The string "PLAIN".

getNegotiatedPropertyback to summary
public Object getNegotiatedProperty(String propName)

Implements javax.security.sasl.SaslClient.getNegotiatedProperty.

Retrieves the negotiated property. This method can be called only after the authentication exchange has completed (i.e., when isComplete() returns true); otherwise, a SaslException is thrown.

Returns:Object

value of property; only QOP is applicable to PLAIN.

Exceptions
IllegalStateException:
if this authentication exchange has not completed
hasInitialResponseback to summary
public boolean hasInitialResponse()

Implements javax.security.sasl.SaslClient.hasInitialResponse.

Doc from javax.security.sasl.SaslClient.hasInitialResponse.

Determines whether this mechanism has an optional initial response. If true, caller should call evaluateChallenge() with an empty array to get the initial response.

isCompleteback to summary
public boolean isComplete()

Implements javax.security.sasl.SaslClient.isComplete.

Determines whether this mechanism has completed. Plain completes after returning one response.

Returns:boolean

true if has completed; false otherwise;

unwrapback to summary
public byte[] unwrap(byte[] incoming, int offset, int len) throws SaslException

Implements javax.security.sasl.SaslClient.unwrap.

Unwraps the incoming buffer.

Exceptions
SaslException:
Not applicable to this mechanism.
wrapback to summary
public byte[] wrap(byte[] outgoing, int offset, int len) throws SaslException

Implements javax.security.sasl.SaslClient.wrap.

Wraps the outgoing buffer.

Exceptions
SaslException:
Not applicable to this mechanism.