Package org.jivesoftware.smack.sasl.core
Class SASLXOauth2Mechanism
java.lang.Object
org.jivesoftware.smack.sasl.SASLMechanism
org.jivesoftware.smack.sasl.core.SASLXOauth2Mechanism
- All Implemented Interfaces:
Comparable<SASLMechanism>
The SASL X-OAUTH2 mechanism as described in https://developers.google
.com/talk/jep_extensions/oauth
The given password will be used as OAUTH token.
Note that X-OAUTH2 is experimental in Smack. This is because Google defined, besides being a bad practice (XEP-134), custom attributes to the 'auth' stanza, as can be seen here
<auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="X-OAUTH2"
auth:service="chromiumsync" auth:allow-generated-jid="true"
auth:client-uses-full-bind-result="true" xmlns:auth="http://www.google.com/talk/protocol/auth">
from https://developers.google.com/cloud-print/docs/rawxmpp and here
<auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl"
mechanism="X-OAUTH2"
auth:service="oauth2"
xmlns:auth="http://www.google.com/talk/protocol/auth">
base64("\0" + user_name + "\0" + oauth_token)
</auth>
from https://developers.google.com/talk/jep_extensions/oauth
Those attribute extensions are currently not supported by Smack, and it's unclear how it affects authorization and how widely they are used.
-
Field Summary
Fields inherited from class org.jivesoftware.smack.sasl.SASLMechanism
authenticationId, authorizationId, connection, connectionConfiguration, CRAMMD5, DIGESTMD5, EXTERNAL, GSSAPI, host, password, PLAIN, serviceName, sslSession
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
void
protected byte[]
Should return the initial response of the SASL mechanism.getName()
Returns the common name of the SASL mechanism.int
Get the priority of this SASL mechanism.Methods inherited from class org.jivesoftware.smack.sasl.SASLMechanism
afterFinalSaslChallenge, authenticate, authenticate, authenticateInternal, authzidSupported, challengeReceived, compareTo, evaluateChallenge, instanceForAuthentication, isAuthenticationSuccessful, isFinished, requiresPassword, saslPrep, setException, throwExceptionIfRequired, toBytes, toString
-
Field Details
-
NAME
- See Also:
-
-
Constructor Details
-
SASLXOauth2Mechanism
public SASLXOauth2Mechanism()
-
-
Method Details
-
authenticateInternal
- Specified by:
authenticateInternal
in classSASLMechanism
-
getAuthenticationText
Description copied from class:SASLMechanism
Should return the initial response of the SASL mechanism. The returned byte array will be send base64 encoded to the server. SASL mechanism are free to returnnull
or an empty array here.- Specified by:
getAuthenticationText
in classSASLMechanism
- Returns:
- the initial response or null
-
getName
Description copied from class:SASLMechanism
Returns the common name of the SASL mechanism. E.g.: PLAIN, DIGEST-MD5 or GSSAPI.- Specified by:
getName
in classSASLMechanism
- Returns:
- the common name of the SASL mechanism.
-
getPriority
Description copied from class:SASLMechanism
Get the priority of this SASL mechanism. Lower values mean higher priority.- Specified by:
getPriority
in classSASLMechanism
- Returns:
- the priority of this SASL mechanism.
-
newInstance
- Specified by:
newInstance
in classSASLMechanism
-
checkIfSuccessfulOrThrow
- Specified by:
checkIfSuccessfulOrThrow
in classSASLMechanism
-