From 57231648c8549a0766e64abee888d128ca7830d6 Mon Sep 17 00:00:00 2001 From: Lars Noschinski Date: Wed, 5 Mar 2014 08:44:47 +0100 Subject: [PATCH] Remove remainders of non-SASL authentication (SMACK-446) --- .../smack/packet/Authentication.java | 183 ------------------ .../smack/util/PacketParserUtils.java | 32 --- 2 files changed, 215 deletions(-) delete mode 100644 core/src/main/java/org/jivesoftware/smack/packet/Authentication.java diff --git a/core/src/main/java/org/jivesoftware/smack/packet/Authentication.java b/core/src/main/java/org/jivesoftware/smack/packet/Authentication.java deleted file mode 100644 index 5d6d5555e..000000000 --- a/core/src/main/java/org/jivesoftware/smack/packet/Authentication.java +++ /dev/null @@ -1,183 +0,0 @@ -/** - * - * Copyright 2003-2007 Jive Software. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jivesoftware.smack.packet; - -import org.jivesoftware.smack.util.StringUtils; - -/** - * Authentication packet, which can be used to login to a XMPP server as well - * as discover login information from the server. - */ -public class Authentication extends IQ { - - private String username = null; - private String password = null; - private String digest = null; - private String resource = null; - - /** - * Create a new authentication packet. By default, the packet will be in - * "set" mode in order to perform an actual authentication with the server. - * In order to send a "get" request to get the available authentication - * modes back from the server, change the type of the IQ packet to "get": - *

- *

setType(IQ.Type.GET); - */ - public Authentication() { - setType(IQ.Type.SET); - } - - /** - * Returns the username, or null if the username hasn't been sent. - * - * @return the username. - */ - public String getUsername() { - return username; - } - - /** - * Sets the username. - * - * @param username the username. - */ - public void setUsername(String username) { - this.username = username; - } - - /** - * Returns the plain text password or null if the password hasn't - * been set. - * - * @return the password. - */ - public String getPassword() { - return password; - } - - /** - * Sets the plain text password. - * - * @param password the password. - */ - public void setPassword(String password) { - this.password = password; - } - - /** - * Returns the password digest or null if the digest hasn't - * been set. Password digests offer a more secure alternative for - * authentication compared to plain text. The digest is the hex-encoded - * SHA-1 hash of the connection ID plus the user's password. If the - * digest and password are set, digest authentication will be used. If - * only one value is set, the respective authentication mode will be used. - * - * @return the digest of the user's password. - */ - public String getDigest() { - return digest; - } - - /** - * Sets the digest value using a connection ID and password. Password - * digests offer a more secure alternative for authentication compared to - * plain text. The digest is the hex-encoded SHA-1 hash of the connection ID - * plus the user's password. If the digest and password are set, digest - * authentication will be used. If only one value is set, the respective - * authentication mode will be used. - * - * @param connectionID the connection ID. - * @param password the password. - * @see org.jivesoftware.smack.Connection#getConnectionID() - */ - public void setDigest(String connectionID, String password) { - this.digest = StringUtils.hash(connectionID + password); - } - - /** - * Sets the digest value directly. Password digests offer a more secure - * alternative for authentication compared to plain text. The digest is - * the hex-encoded SHA-1 hash of the connection ID plus the user's password. - * If the digest and password are set, digest authentication will be used. - * If only one value is set, the respective authentication mode will be used. - * - * @param digest the digest, which is the SHA-1 hash of the connection ID - * the user's password, encoded as hex. - * @see org.jivesoftware.smack.Connection#getConnectionID() - */ - public void setDigest(String digest) { - this.digest = digest; - } - - /** - * Returns the resource or null if the resource hasn't been set. - * - * @return the resource. - */ - public String getResource() { - return resource; - } - - /** - * Sets the resource. - * - * @param resource the resource. - */ - public void setResource(String resource) { - this.resource = resource; - } - - public String getChildElementXML() { - StringBuilder buf = new StringBuilder(); - buf.append(""); - if (username != null) { - if (username.equals("")) { - buf.append(""); - } - else { - buf.append("").append(username).append(""); - } - } - if (digest != null) { - if (digest.equals("")) { - buf.append(""); - } - else { - buf.append("").append(digest).append(""); - } - } - if (password != null && digest == null) { - if (password.equals("")) { - buf.append(""); - } - else { - buf.append("").append(StringUtils.escapeForXML(password)).append(""); - } - } - if (resource != null) { - if (resource.equals("")) { - buf.append(""); - } - else { - buf.append("").append(resource).append(""); - } - } - buf.append(""); - return buf.toString(); - } -} diff --git a/core/src/main/java/org/jivesoftware/smack/util/PacketParserUtils.java b/core/src/main/java/org/jivesoftware/smack/util/PacketParserUtils.java index d7d2f3913..81605a1e8 100644 --- a/core/src/main/java/org/jivesoftware/smack/util/PacketParserUtils.java +++ b/core/src/main/java/org/jivesoftware/smack/util/PacketParserUtils.java @@ -29,7 +29,6 @@ import java.util.logging.Level; import java.util.logging.Logger; import org.jivesoftware.smack.Connection; -import org.jivesoftware.smack.packet.Authentication; import org.jivesoftware.smack.packet.Bind; import org.jivesoftware.smack.packet.DefaultPacketExtension; import org.jivesoftware.smack.packet.IQ; @@ -301,9 +300,6 @@ public class PacketParserUtils { if (elementName.equals("error")) { error = PacketParserUtils.parseError(parser); } - else if (elementName.equals("query") && namespace.equals("jabber:iq:auth")) { - iqPacket = parseAuthentication(parser); - } else if (elementName.equals("query") && namespace.equals("jabber:iq:roster")) { iqPacket = parseRoster(parser); } @@ -383,34 +379,6 @@ public class PacketParserUtils { return iqPacket; } - private static Authentication parseAuthentication(XmlPullParser parser) throws Exception { - Authentication authentication = new Authentication(); - boolean done = false; - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("username")) { - authentication.setUsername(parser.nextText()); - } - else if (parser.getName().equals("password")) { - authentication.setPassword(parser.nextText()); - } - else if (parser.getName().equals("digest")) { - authentication.setDigest(parser.nextText()); - } - else if (parser.getName().equals("resource")) { - authentication.setResource(parser.nextText()); - } - } - else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("query")) { - done = true; - } - } - } - return authentication; - } - private static RosterPacket parseRoster(XmlPullParser parser) throws Exception { RosterPacket roster = new RosterPacket(); boolean done = false;