public class SASLXOauth2Mechanism extends SASLMechanism
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.
| Modifier and Type | Field and Description |
|---|---|
static String |
NAME |
authenticationId, connection, CRAMMD5, DIGESTMD5, EXTERNAL, GSSAPI, host, password, PLAIN, serviceName| Constructor and Description |
|---|
SASLXOauth2Mechanism() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
authenticateInternal(CallbackHandler cbh) |
void |
checkIfSuccessfulOrThrow() |
protected byte[] |
getAuthenticationText()
Should return the initial response of the SASL mechanism.
|
String |
getName()
Returns the common name of the SASL mechanism.
|
int |
getPriority() |
SASLXOauth2Mechanism |
newInstance() |
authenticate, authenticate, authenticateInternal, challengeReceived, compareTo, evaluateChallenge, instanceForAuthentication, saslPrep, setSaslPrepTransformer, toBytespublic static final String NAME
public SASLXOauth2Mechanism()
protected void authenticateInternal(CallbackHandler cbh) throws SmackException
authenticateInternal in class SASLMechanismSmackExceptionprotected byte[] getAuthenticationText() throws SmackException
SASLMechanismnull or an
empty array here.getAuthenticationText in class SASLMechanismSmackExceptionpublic String getName()
SASLMechanismgetName in class SASLMechanismpublic int getPriority()
getPriority in class SASLMechanismpublic SASLXOauth2Mechanism newInstance()
newInstance in class SASLMechanismpublic void checkIfSuccessfulOrThrow() throws SmackException
checkIfSuccessfulOrThrow in class SASLMechanismSmackException