SASLError à l'aide de la PLAINE: non-autorisé
Je suis en train de maj de mon appli de aSmack
à Smack 4.1.1
. Cependant, je vais avoir de la difficulté à utiliser le même serveur et les informations de connexion dans le cas de Smack tout sur aSmack il fonctionne parfaitement.
Voici mon ancien code de connexion dans aSmack
-
void startConnect(boolean sslFlag) throws XMPPException, SmackException, IOException {
ConnectionConfiguration connectionConfig =
new ConnectionConfiguration(HOST, Integer.parseInt(PORT), SERVICE);
connectionConfig.setDebuggerEnabled(true);
connectionConfig.setCompressionEnabled(false);
if (sslFlag)
SASLAuthentication.supportSASLMechanism("PLAIN", 0);
XMPPConnection connection = new XMPPTCPConnection(connectionConfig);
connection.connect();
connection.login(mUserName, mUserPassword, getResource());
//Set status to online /available
Presence presence = new Presence(Presence.Type.available);
connection.sendPacket(presence);
setConnection(connection);
}
Je suis en train d'utiliser le code sur de la même manière dans Smack
trop
public void init() {
SmackConfiguration.DEBUG = true;
XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder()
.setHost(SERVICE_NAME)
.setPort(5222)
.setServiceName(SERVICE_NAME)
.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled)
.setDebuggerEnabled(true)
.build();
mConnection = new XMPPTCPConnection(config);
//I have tried with blacklisting and unblacklisting all three mechanism.
//SASLMechanism mechanism = new SASLPlainMechanism(); //This didn't help
//SASLAuthentication.registerSASLMechanism(mechanism);
SASLAuthentication.blacklistSASLMechanism("SCRAM-SHA-1");
SASLAuthentication.blacklistSASLMechanism("DIGEST-MD5");
SASLAuthentication.unBlacklistSASLMechanism("PLAIN");
try {
mConnection.connect();
return;
} catch (SmackException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (XMPPException e) {
e.printStackTrace();
}
mConnection = null;
}
public void login(String username, String password) throws IOException, XMPPException, SmackException {
if(mConnection==null || !mConnection.isConnected()){
init();
if(mConnection==null){
throw new IOException();
}
}
mConnection.login(username/*+"@"+SERVICE_NAME*/, password); //I have tried both the method by adding @Domain part and without it.
mChatManager = ChatManager.getInstanceFor(mConnection);
mChatManager.addChatListener(this);
}
Voici l'exception que je suis se -
05-21 21:22:29.782 19536-23179/test W/System.err﹕ org.jivesoftware.smack.sasl.SASLErrorException: SASLError using PLAIN: not-authorized
05-21 21:22:29.782 19536-23179/test W/System.err﹕ at org.jivesoftware.smack.SASLAuthentication.authenticationFailed(SASLAuthentication.java:365)
05-21 21:22:29.792 19536-23179/test W/System.err﹕ at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1033)
05-21 21:22:29.792 19536-23179/test W/System.err﹕ at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$200(XMPPTCPConnection.java:937)
05-21 21:22:29.792 19536-23179/test W/System.err﹕ at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:952)
05-21 21:22:29.792 19536-23179/test W/System.err﹕ at java.lang.Thread.run(Thread.java:856)
Cette exception est de même avec arrêt d'urgence et DIGEST-MD5. Il change juste le nom.
Voici ce que je reçois de serveur
05-21 21:22:29.512 19536-23189/test D/SMACK﹕ SENT (0): <stream:stream xmlns='jabber:client' to='xmpp.example.com' xmlns:stream='http://etherx.jabber.org/streams' version='1.0' xml:lang='en'>
05-21 21:22:29.642 19536-23190/test D/SMACK﹕ RECV (0): <?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='214326363' from='xmpp.example.com' version='1.0' xml:lang='en'><stream:features><compression xmlns='http://jabber.org/features/compress'><method>zlib</method></compression><mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><mechanism>SCRAM-SHA-1</mechanism><mechanism>PLAIN</mechanism><mechanism>DIGEST-MD5</mechanism></mechanisms><c xmlns='http://jabber.org/protocol/caps' hash='sha-1' node='http://www.process-one.net/en/ejabberd/' ver='hX7OB6oTZugjNIFHZvd95k5UYzc='/><register xmlns='http://jabber.org/features/iq-register'/></stream:features>
05-21 21:22:29.652 19536-23189/test D/SMACK﹕ SENT (0): <auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='PLAIN'>ADEwMDAAMTAwMA==</auth>
05-21 21:22:29.782 19536-23190/test D/SMACK﹕ RECV (0): <failure xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><not-authorized/></failure>
Quel pourrait être le problème ici? J'ai essayé avec tous les trois de mécanisme PLAIN
, DIGEST-MD5
et la valeur par défaut SCRAM-SHA-1
. J'ai aussi essayé avec ou sans l'ajout de nom de domaine. J'ai essayé avec l'ajout de nom d'utilisateur et le mot de passe dans la configuration et en l'ajoutant directement sur la méthode de connexion.
J'ai essayé avec de sécurité requises mode qui donne l'erreur suivante -
05-21 21:27:53.658 25643-26009/test D/SMACK﹕ SENT (0): <stream:stream xmlns='jabber:client' to='xmpp.example.com' xmlns:stream='http://etherx.jabber.org/streams' version='1.0' xml:lang='en'>
05-21 21:27:53.788 25643-26010/test D/SMACK﹕ RECV (0): <?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='4179863647' from='xmpp.example.com' version='1.0' xml:lang='en'><stream:features><compression xmlns='http://jabber.org/features/compress'><method>zlib</method></compression><mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><mechanism>SCRAM-SHA-1</mechanism><mechanism>PLAIN</mechanism><mechanism>DIGEST-MD5</mechanism></mechanisms><c xmlns='http://jabber.org/protocol/caps' hash='sha-1' node='http://www.process-one.net/en/ejabberd/' ver='hX7OB6oTZugjNIFHZvd95k5UYzc='/><register xmlns='http://jabber.org/features/iq-register'/></stream:features>
05-21 21:27:54.229 25643-26009/test D/SMACK﹕ SENT (0): <auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='PLAIN'>ADEwMDAAMTAwMA==</auth>
05-21 21:27:59.264 25643-25970/test W/System.err﹕ org.jivesoftware.smack.SmackException$NoResponseException: No response received within reply timeout. Timeout was 5000ms (~5s). Used filter: No filter used or filter was 'null'.
05-21 21:27:59.454 25643-26010/test W/AbstractXMPPConnection﹕ Connection closed with error
org.jivesoftware.smack.SmackException$SecurityRequiredByClientException: SSL/TLS required by client but not supported by server
at org.jivesoftware.smack.tcp.XMPPTCPConnection.afterFeaturesReceived(XMPPTCPConnection.java:898)
at org.jivesoftware.smack.AbstractXMPPConnection.parseFeatures(AbstractXMPPConnection.java:1367)
at org.jivesoftware.smack.tcp.XMPPTCPConnection.access$800(XMPPTCPConnection.java:139)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:998)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$200(XMPPTCPConnection.java:937)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:952)
at java.lang.Thread.run(Thread.java:856)
05-21 21:27:59.494 25643-25970/test W/System.err﹕ at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:250)
05-21 21:27:59.494 25643-25970/test W/System.err﹕ at org.jivesoftware.smack.tcp.XMPPTCPConnection.loginNonAnonymously(XMPPTCPConnection.java:365)
05-21 21:27:59.524 25643-25970/test W/System.err﹕ at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:452)
05-21 21:27:59.544 25643-25970/test W/System.err﹕ at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:427)
05-21 21:27:59.574 25643-25970/test W/System.err﹕ at test.Managers.XMPPManager.login(XMPPManager.java:84)
05-21 21:27:59.594 25643-25970/test W/System.err﹕ at test.API.LoginAPI.callAPI(LoginAPI.java:31)
05-21 21:27:59.604 25643-25970/test W/System.err﹕ at test.API.BaseAPI$XMPPTask.doInBackground(BaseAPI.java:70)
05-21 21:27:59.624 25643-25647/test D/dalvikvm﹕ GC_CONCURRENT freed 1558K, 17% free 30564K/36743K, paused 13ms+32ms, total 111ms
05-21 21:27:59.624 25643-25970/test W/System.err﹕ at test.API.BaseAPI$XMPPTask.doInBackground(BaseAPI.java:45)
05-21 21:27:59.624 25643-25970/test W/System.err﹕ at android.os.AsyncTask$2.call(AsyncTask.java:287)
05-21 21:27:59.624 25643-25970/test W/System.err﹕ at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
05-21 21:27:59.664 25643-25970/test W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:137)
05-21 21:27:59.664 25643-25970/test W/System.err﹕ at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
05-21 21:27:59.664 25643-25970/test W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
05-21 21:27:59.664 25643-25970/test W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
05-21 21:27:59.664 25643-25970/test W/System.err﹕ at java.lang.Thread.run(Thread.java:856)
PS:
J'ai besoin de la solution dans Smack 4.1.1. Mon code est déjà bon travail dans aSmack, j'en ai besoin pour le mettre à niveau à Claque. Je suppose que c'est clair maintenant.
OriginalL'auteur noob | 2015-05-21
Vous devez vous connecter pour publier un commentaire.
J'ai été confronté à la même erreur.
Après la connexion au serveur xmpp je appeler
et il n'a pas de travail.
Pour résoudre le problème j'ai fait les modifications suivantes dans mon code.
J'ai ajouté deux lignes dont la liste noire DIGEST-MD5 et activer la PLAINE SASLMechanism et également supprimé adresse IP à partir du nom d'utilisateur.
Pour votre référence ici est mon travail complet code.
OriginalL'auteur Mohit Charadva
Pour l'autorisation de la politique,
PLAINE Auth - Unblacklist PLAINE, la liste noire de l'algorithme SHA-1 ET MD5
MD5 Auth - Unblacklist MD5, la liste noire de l'algorithme SHA-1 ET la PLAINE
SCRAM-SHA-1 Auth - Unblacklist SCRAM-SHA-1 & PLAINE, liste noire MD5
AuthNames :
PLAIN
,SCRAM-SHA-1
,MD5
** Case à côté serveur ce qui auth méthode permet
OriginalL'auteur Sakib Sami
Ok, c'était plutôt une stupide erreur. Le code actuel est parfaitement bien. J'ai mis accidentellement nom d'utilisateur à la place de mot de passe. J'ai appris à connaître à propos de l'erreur quand j'ai essayé de revenir à aSmack.
OriginalL'auteur noob
a fonctionné pour moi non les connexions SSL. (connectés méthode)
EDIT:
si le compte d'utilisateur a été créé sur le serveur, vous pouvez obtenir cette erreur. vérifiez si il s'agit de l'inscription (créer un compte) ou de connexion.
OriginalL'auteur Alp Altunel
Je pense propriété suivante va travailler pour vous, je suis en utilisant 3.1
Je suis à l'aide 3.1 , C'est pourquoi je rote je pense
Oh! Aucune idée de ce qui peut être fait pour 4.1.1?
OriginalL'auteur Jaspreet Chhabra