|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface Authenticator
This interface provides a way to respond to authentication challenge and
authentication response headers. When a client or server receives an
authentication challenge or authentication response header, the
onAuthenticationChallenge()
or
onAuthenticationResponse()
will be called, respectively, by
the implementation.
For more information on how the authentication procedure works in OBEX, please review the IrOBEX specification at http://www.irda.org.
Authentication Challenges
When a client or server receives an authentication challenge header, the
onAuthenticationChallenge()
method will be invoked by the
OBEX API implementation. The application will then return the user name
(if needed) and password via a PasswordAuthentication
object.
The password in this object is not sent in the authentication response.
Instead, the 16-byte challenge received in the authentication challenge is
combined with the password returned from the
onAuthenticationChallenge()
method and passed through the MD5
hash algorithm. The resulting value is sent in the authentication response
along with the user name if it was provided.
Authentication Responses
When a client or server receives an authentication response header, the
onAuthenticationResponse()
method is invoked by the API
implementation with the user name received in the authentication response
header. (The user name will be null
if no user name was
provided in the authentication response header.) The application must
determine the correct password. This value should be returned from the
onAuthenticationResponse()
method. If the authentication
request should fail without the implementation checking the password,
null
should
be returned by the application. (This is needed for reasons like not
recognizing the user name, etc.) If the returned value is not
null
, the OBEX API implementation will combine the password
returned from the onAuthenticationResponse()
method and
challenge sent via the authentication challenge, apply the MD5 hash
algorithm, and compare the result to the response hash received in the
authentication response header. If the values are not equal, an
IOException
will be thrown if the client requested authentication.
If the server requested authentication, the
onAuthenticationFailure()
method will be called on the
ServerRequestHandler
that failed authentication. The
connection is not closed if authentication failed.
Method Summary | |
---|---|
PasswordAuthentication |
onAuthenticationChallenge(java.lang.String description,
boolean isUserIdRequired,
boolean isFullAccess)
Called when a client or a server receives an authentication challenge header. |
byte[] |
onAuthenticationResponse(byte[] userName)
Called when a client or server receives an authentication response header. |
Method Detail |
---|
PasswordAuthentication onAuthenticationChallenge(java.lang.String description, boolean isUserIdRequired, boolean isFullAccess)
PasswordAuthentication
that contains the correct user name
and password for the challenge.
description
- the description of which user name and password
should be used; if no description is provided in the authentication
challenge or the description is encoded in an encoding scheme that is
not supported, an empty string will be providedisUserIdRequired
- true
if the user ID is required;
false
if the user ID is not requiredisFullAccess
- true
if full access to the server
will be granted; false
if read only access will be
granted
PasswordAuthentication
object containing the
user name and password used for authenticationbyte[] onAuthenticationResponse(byte[] userName)
userName
- the user name provided in the authentication response;
may be null
null
is returned then the authentication request failed
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |