|
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
SaslServer
null
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 SaslServer
response
- 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()
SaslServer
SaslServer.evaluateResponse(byte[])
to determine whether the authentication has completed successfully or
should be continued.
isComplete
in interface SaslServer
true
if the authentication exchange has completed;
false
otherwise.public byte[] unwrap(byte[] incoming, int offset, int len) throws SaslException
SaslServer
Unwraps 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 SaslServer
incoming
- 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
SaslServer
Wraps 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 SaslServer
outgoing
- 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 SaslServer
public java.lang.String getAuthorizationID()
SaslServer
SaslServer.isComplete()
returns true
.
getAuthorizationID
in interface SaslServer
public java.lang.Object getNegotiatedProperty(java.lang.String propName) throws SaslException
SaslServer
SaslServer.isComplete()
returns true
); otherwise, an
IllegalStateException
is thrown.
getNegotiatedProperty
in interface SaslServer
null
, the
property was not negotiated or is not applicable to this mechanism.
SaslException
public void dispose() throws SaslException
SaslServer
SaslServer
might be using. Invoking this method invalidates
the SaslServer
instance. This method is idempotent.
dispose
in interface SaslServer
SaslException
- 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 |