|
For the latest news and information visit The GNU Crypto project |
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Object | +--gnu.crypto.sasl.ServerMechanism
A base class to facilitate implementing SASL server-side mechanisms.
| Field Summary | |
|---|---|
protected IAuthInfoProvider |
authenticator
The provider for authentication information. |
protected java.lang.String |
authorizationID
The authorisation identity. |
protected byte[] |
channelBinding
Channel binding data to use with this mechanism instance. |
protected boolean |
complete
Whether authentication phase is completed (true) or not (false). |
protected CallbackHandler |
handler
Callback handler to use with this mechanism instance. |
protected java.lang.String |
mechanism
Name of this mechanism. |
protected java.util.Map |
properties
Properties of qualities desired for this mechanism. |
protected java.lang.String |
protocol
Name of protocol using this mechanism. |
protected java.lang.String |
serverName
Name of server to authenticate to. |
protected int |
state
The state of the authentication automaton. |
| Constructor Summary | |
|---|---|
protected |
ServerMechanism(java.lang.String mechanism)
|
| Method Summary | |
|---|---|
void |
dispose()
Disposes of any system resources or security-sensitive information the SaslServer might be using. |
protected byte[] |
engineUnwrap(byte[] incoming,
int offset,
int len)
|
protected byte[] |
engineWrap(byte[] outgoing,
int offset,
int len)
|
abstract byte[] |
evaluateResponse(byte[] response)
Evaluates the response data and generates a challenge. |
java.lang.String |
getAuthorizationID()
Reports the authorization ID in effect for the client of this session This method can only be called if isComplete() returns true. |
java.lang.String |
getMechanismName()
Returns the IANA-registered mechanism name of this SASL server (e.g. |
protected java.lang.String |
getNegotiatedMaxBuffer()
|
protected java.lang.String |
getNegotiatedPolicyForwardSecrecy()
|
protected java.lang.String |
getNegotiatedPolicyNoActive()
|
protected java.lang.String |
getNegotiatedPolicyNoAnonymous()
|
protected java.lang.String |
getNegotiatedPolicyNoDictionary()
|
protected java.lang.String |
getNegotiatedPolicyNoPlainText()
|
protected java.lang.String |
getNegotiatedPolicyPassCredentials()
|
java.lang.Object |
getNegotiatedProperty(java.lang.String propName)
Retrieves the negotiated property. |
protected java.lang.String |
getNegotiatedQOP()
|
protected java.lang.String |
getNegotiatedRawSendSize()
|
protected java.lang.String |
getNegotiatedServerAuth()
|
protected java.lang.String |
getNegotiatedStrength()
|
protected java.lang.String |
getReuse()
|
void |
init(java.util.Map attributes)
Initialises the mechanism with designated attributes. |
protected abstract void |
initMechanism()
|
boolean |
isComplete()
Determines if the authentication exchange has completed. |
void |
reset()
Resets the mechanism instance for re-initialisation and use with other characteristics. |
protected abstract void |
resetMechanism()
|
byte[] |
unwrap(byte[] incoming,
int offset,
int len)
Unwraps a byte array received from the client. |
byte[] |
wrap(byte[] outgoing,
int offset,
int len)
Wraps a byte array to be sent to the client. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
protected java.lang.String mechanism
protected java.lang.String protocol
protected java.lang.String serverName
protected java.util.Map properties
protected CallbackHandler handler
protected boolean complete
protected java.lang.String authorizationID
protected byte[] channelBinding
protected int state
protected IAuthInfoProvider authenticator
| Constructor Detail |
protected ServerMechanism(java.lang.String mechanism)
| Method Detail |
protected abstract void initMechanism()
throws SaslException
SaslException
protected abstract void resetMechanism()
throws SaslException
SaslException
public abstract byte[] evaluateResponse(byte[] response)
throws SaslException
SaslServernull if the authentication has succeeded and
no more challenge data is to be sent to the client. It is non-null if the
authentication must be continued by sending a challenge to the client, or
if the authentication has succeeded but challenge data needs to be
processed by the client. SaslServer.isComplete() should be called after each
call to evaluateResponse(),to determine if any further
response is needed from the client.
evaluateResponse in interface SaslServerresponse - the non-null (but possibly empty) response sent by the
client.
null challenge to send to the client.
It is null if the authentication has succeeded and there is
no more challenge data to be sent to the client.
SaslException - if an error occurred while processing the response
or generating a challenge.public boolean isComplete()
SaslServerSaslServer.evaluateResponse(byte[])
to determine whether the authentication has completed successfully or
should be continued.
isComplete in interface SaslServertrue if the authentication exchange has completed;
false otherwise.
public byte[] unwrap(byte[] incoming,
int offset,
int len)
throws SaslException
SaslServerUnwraps a byte array received from the client. This method can be called
only after the authentication exchange has completed (i.e., when
SaslServer.isComplete() returns true) and only if the
authentication exchange has negotiated integrity and/or privacy as the
quality of protection; otherwise, an IllegalStateException is
thrown.
incoming is the contents of the SASL buffer as defined in
RFC 2222 without the leading four octet field that represents the length.
offset and len specify the portion of incoming
to use.
unwrap in interface SaslServerincoming - a non-null byte array containing the encoded bytes from
the client.offset - the starting position at incoming of the bytes
to use.len - the number of bytes from incoming to use.
SaslException - if incoming cannot be successfully
unwrapped.
public byte[] wrap(byte[] outgoing,
int offset,
int len)
throws SaslException
SaslServerWraps a byte array to be sent to the client. This method can be called
only after the authentication exchange has completed (i.e., when
SaslServer.isComplete() returns true) and only if the
authentication exchange has negotiated integrity and/or privacy as the
quality of protection; otherwise, an IllegalStateException is
thrown.
The result of this method will make up the contents of the SASL buffer
as defined in RFC 2222 without the leading four octet field that
represents the length. offset and len specify
the portion of outgoing to use.
wrap in interface SaslServeroutgoing - a non-null byte array containing the bytes to encode.offset - the starting position at outgoing of the bytes
to use.len - the number of bytes from outgoing to use.
SaslException - if outgoing cannot be successfully
wrapped.public java.lang.String getMechanismName()
SaslServer
getMechanismName in interface SaslServerpublic java.lang.String getAuthorizationID()
SaslServerSaslServer.isComplete() returns true.
getAuthorizationID in interface SaslServer
public java.lang.Object getNegotiatedProperty(java.lang.String propName)
throws SaslException
SaslServerSaslServer.isComplete() returns true); otherwise, an
IllegalStateException is thrown.
getNegotiatedProperty in interface SaslServernull, the
property was not negotiated or is not applicable to this mechanism.
SaslException
public void dispose()
throws SaslException
SaslServerSaslServer might be using. Invoking this method invalidates
the SaslServer instance. This method is idempotent.
dispose in interface SaslServerSaslException - if a problem was encountered while disposing of the
resources.protected java.lang.String getNegotiatedQOP()
protected java.lang.String getNegotiatedStrength()
protected java.lang.String getNegotiatedServerAuth()
protected java.lang.String getNegotiatedMaxBuffer()
protected java.lang.String getNegotiatedPolicyNoPlainText()
protected java.lang.String getNegotiatedPolicyNoActive()
protected java.lang.String getNegotiatedPolicyNoDictionary()
protected java.lang.String getNegotiatedPolicyNoAnonymous()
protected java.lang.String getNegotiatedPolicyForwardSecrecy()
protected java.lang.String getNegotiatedPolicyPassCredentials()
protected java.lang.String getNegotiatedRawSendSize()
protected java.lang.String getReuse()
protected byte[] engineUnwrap(byte[] incoming,
int offset,
int len)
throws SaslException
SaslException
protected byte[] engineWrap(byte[] outgoing,
int offset,
int len)
throws SaslException
SaslException
public void init(java.util.Map attributes)
throws SaslException
Initialises the mechanism with designated attributes. Permissible names and values are mechanism specific.
attributes - a set of name-value pairs that describes the desired
future behaviour of this instance.
IllegalMechanismStateException - if the instance is already
initialised.
SaslException - if an exception occurs during the process.
public void reset()
throws SaslException
Resets the mechanism instance for re-initialisation and use with other characteristics.
SaslException - if an exception occurs during the process.
|
For the latest news and information visit The GNU Crypto project |
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||