mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2024-11-27 00:32:07 +01:00
SMACK-404 Changed StringUtils.decodeBase64(String) behavior so that the method does not try to detect and decompress a gzip-compressed input. Refactored every use of the Base64.(de|en)code* methods to use the StringUtils (de|en)codeBase64 methods instead.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13416 b35dd754-fafc-0310-a699-88a17e54d16e
This commit is contained in:
parent
e3f84cdbe6
commit
401c37bd28
4 changed files with 19 additions and 10 deletions
|
@ -9,7 +9,8 @@ import java.net.InetAddress;
|
|||
import java.net.Socket;
|
||||
import java.net.UnknownHostException;
|
||||
import javax.net.SocketFactory;
|
||||
import org.jivesoftware.smack.util.Base64;
|
||||
import org.jivesoftware.smack.util.StringUtils;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
|
@ -73,8 +74,7 @@ class HTTPProxySocketFactory
|
|||
{
|
||||
String password = proxy.getProxyPassword();
|
||||
proxyLine = "\r\nProxy-Authorization: Basic "
|
||||
+ new String (Base64.encodeBytes((username + ":"
|
||||
+ password).getBytes("UTF-8")));
|
||||
+ new String(StringUtils.encodeBase64(username + ":" + password));
|
||||
}
|
||||
socket.getOutputStream().write((hostport + " HTTP/1.1\r\nHost: "
|
||||
+ hostport + proxyLine + "\r\n\r\n").getBytes("UTF-8"));
|
||||
|
|
|
@ -23,7 +23,7 @@ package org.jivesoftware.smack.sasl;
|
|||
import org.jivesoftware.smack.XMPPException;
|
||||
import org.jivesoftware.smack.SASLAuthentication;
|
||||
import org.jivesoftware.smack.packet.Packet;
|
||||
import org.jivesoftware.smack.util.Base64;
|
||||
import org.jivesoftware.smack.util.StringUtils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
|
@ -115,7 +115,7 @@ public abstract class SASLMechanism implements CallbackHandler {
|
|||
try {
|
||||
if(sc.hasInitialResponse()) {
|
||||
byte[] response = sc.evaluateChallenge(new byte[0]);
|
||||
authenticationText = Base64.encodeBytes(response,Base64.DONT_BREAK_LINES);
|
||||
authenticationText = StringUtils.encodeBase64(response, false);
|
||||
}
|
||||
} catch (SaslException e) {
|
||||
throw new XMPPException("SASL authentication failed", e);
|
||||
|
@ -136,7 +136,7 @@ public abstract class SASLMechanism implements CallbackHandler {
|
|||
public void challengeReceived(String challenge) throws IOException {
|
||||
byte response[];
|
||||
if(challenge != null) {
|
||||
response = sc.evaluateChallenge(Base64.decode(challenge));
|
||||
response = sc.evaluateChallenge(StringUtils.decodeBase64(challenge));
|
||||
} else {
|
||||
response = sc.evaluateChallenge(new byte[0]);
|
||||
}
|
||||
|
@ -146,7 +146,7 @@ public abstract class SASLMechanism implements CallbackHandler {
|
|||
responseStanza = new Response();
|
||||
}
|
||||
else {
|
||||
responseStanza = new Response(Base64.encodeBytes(response,Base64.DONT_BREAK_LINES));
|
||||
responseStanza = new Response(StringUtils.encodeBase64(response, false));
|
||||
}
|
||||
|
||||
// Send the authentication to the server
|
||||
|
|
|
@ -501,12 +501,21 @@ public class StringUtils {
|
|||
|
||||
/**
|
||||
* Decodes a base64 String.
|
||||
* Unlike Base64.decode() this method does not try to detect and decompress a gzip-compressed input.
|
||||
*
|
||||
* @param data a base64 encoded String to decode.
|
||||
* @return the decoded String.
|
||||
*/
|
||||
public static byte[] decodeBase64(String data) {
|
||||
return Base64.decode(data);
|
||||
byte[] bytes;
|
||||
try {
|
||||
bytes = data.getBytes("UTF-8");
|
||||
} catch (java.io.UnsupportedEncodingException uee) {
|
||||
bytes = data.getBytes();
|
||||
}
|
||||
|
||||
bytes = Base64.decode(bytes, 0, bytes.length, Base64.NO_OPTIONS);
|
||||
return bytes;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -20,7 +20,7 @@ import static org.mockito.Mockito.*;
|
|||
import java.util.Properties;
|
||||
|
||||
import org.jivesoftware.smack.packet.IQ;
|
||||
import org.jivesoftware.smack.util.Base64;
|
||||
import org.jivesoftware.smack.util.StringUtils;
|
||||
import org.jivesoftware.smackx.bytestreams.ibb.packet.Data;
|
||||
import org.jivesoftware.smackx.bytestreams.ibb.packet.DataPacketExtension;
|
||||
import org.junit.Test;
|
||||
|
@ -53,7 +53,7 @@ public class DataTest {
|
|||
|
||||
@Test
|
||||
public void shouldReturnValidIQStanzaXML() throws Exception {
|
||||
String encodedData = Base64.encodeBytes("Test".getBytes());
|
||||
String encodedData = StringUtils.encodeBase64("Test");
|
||||
|
||||
String control = XMLBuilder.create("iq")
|
||||
.a("from", "romeo@montague.lit/orchard")
|
||||
|
|
Loading…
Reference in a new issue