You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2019/11/20 01:57:02 UTC
[james-project] 34/49: [Refactoring] Rely on java Base64 in SMTP
server test
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 48b5a9f4ad32744694bdd0e81bf62a0584834da1
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Sun Nov 17 19:59:16 2019 +0700
[Refactoring] Rely on java Base64 in SMTP server test
---
.../java/org/apache/james/smtpserver/Base64.java | 117 ---------------------
.../apache/james/smtpserver/SMTPServerTest.java | 24 +++--
2 files changed, 13 insertions(+), 128 deletions(-)
diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/Base64.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/Base64.java
deleted file mode 100644
index 7e46a26..0000000
--- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/Base64.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one *
- * or more contributor license agreements. See the NOTICE file *
- * distributed with this work for additional information *
- * regarding copyright ownership. The ASF licenses this file *
- * to you 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.apache.james.smtpserver;
-
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-
-import javax.mail.MessagingException;
-import javax.mail.internet.MimeUtility;
-
-/**
- * Performs simple Base64 encoding and decode suitable for authentication. Note
- * that this is not a general purpose codec.
- */
-public class Base64 {
-
- /**
- * Decode base64 encoded String
- *
- * @param b64string
- * base64 String
- * @return reader the BufferedReader which holds the decoded base64 text
- * @throws MessagingException
- * get thrown when an error was detected while trying to decode
- * the String
- */
- public static BufferedReader decode(String b64string) throws MessagingException {
- return new BufferedReader(new InputStreamReader(MimeUtility.decode(
- new ByteArrayInputStream(b64string.getBytes()), "base64")));
- }
-
- /**
- * Decode base64 encoded String
- *
- * @param b64string
- * base64 Sting
- * @return returnString the String which holds the docoded base64 text
- * @throws MessagingException
- * get thrown when an error was detected while trying to decode
- * the String
- * @throws IOException
- * get thrown when I/O error was detected
- */
- public static String decodeAsString(String b64string) throws IOException, MessagingException {
- if (b64string == null) {
- return b64string;
- }
- String returnString = decode(b64string).readLine();
- if (returnString == null) {
- return returnString;
- }
- return returnString.trim();
- }
-
- /**
- * Encode String to base64
- *
- * @param plaintext
- * the plaintext to encode
- * @return out the ByteArrayOutputStream holding the encoded given text
- * @throws IOException
- * get thrown when I/O error was detected
- * @throws MessagingException
- * get thrown when an error was detected while trying to encode
- * the String
- */
- public static ByteArrayOutputStream encode(String plaintext) throws IOException, MessagingException {
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- byte[] in = plaintext.getBytes();
- ByteArrayOutputStream inStream = new ByteArrayOutputStream();
- inStream.write(in, 0, in.length);
- // pad
- if ((in.length % 3) == 1) {
- inStream.write(0);
- inStream.write(0);
- } else if ((in.length % 3) == 2) {
- inStream.write(0);
- }
- inStream.writeTo(MimeUtility.encode(out, "base64"));
- return out;
- }
-
- /**
- * Encode String to base64
- *
- * @param plaintext
- * the plaintext to decode
- * @return base64String the encoded String
- * @throws IOException
- * get thrown when I/O error was detected
- * @throws MessagingException
- * get thrown when an error was detected while trying to encode
- * the String
- */
- public static String encodeAsString(String plaintext) throws IOException, MessagingException {
- return encode(plaintext).toString();
- }
-}
diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java
index 9c75008..b0c094d 100644
--- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java
+++ b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java
@@ -18,6 +18,7 @@
****************************************************************/
package org.apache.james.smtpserver;
+import static java.nio.charset.StandardCharsets.UTF_8;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Fail.fail;
import static org.mockito.Mockito.mock;
@@ -34,6 +35,7 @@ import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.ArrayList;
+import java.util.Base64;
import java.util.Collection;
import java.util.List;
@@ -384,7 +386,7 @@ public class SMTPServerTest {
// no message there, yet
assertThat(queue.getLastMail())
.as("no mail received by mail server")
- .isNull();;
+ .isNull();
smtpProtocol.sendCommand("EHLO " + InetAddress.getLocalHost());
String[] capabilityRes = smtpProtocol.getReplyStrings();
@@ -500,7 +502,7 @@ public class SMTPServerTest {
// no message there, yet
assertThat(queue.getLastMail())
.as("no mail received by mail server")
- .isNull();;
+ .isNull();
smtpProtocol.sendCommand("EHLO " + InetAddress.getLocalHost());
String[] capabilityRes = smtpProtocol.getReplyStrings();
@@ -534,7 +536,7 @@ public class SMTPServerTest {
// no message there, yet
assertThat(queue.getLastMail())
.as("no mail received by mail server")
- .isNull();;
+ .isNull();
smtpProtocol.sendCommand("EHLO " + InetAddress.getLocalHost());
smtpProtocol.sendCommand("STARTTLS");
@@ -555,7 +557,7 @@ public class SMTPServerTest {
// no message there, yet
assertThat(queue.getLastMail())
.as("no mail received by mail server")
- .isNull();;
+ .isNull();
smtpProtocol.sendCommand("EHLO " + InetAddress.getLocalHost());
smtpProtocol.sendCommand("STARTTLS\r\nAUTH PLAIN");
@@ -594,7 +596,7 @@ public class SMTPServerTest {
// no message there, yet
assertThat(queue.getLastMail())
.as("no mail received by mail server")
- .isNull();;
+ .isNull();
smtp.helo(InetAddress.getLocalHost().toString());
smtp.setSender("mail@localhost");
@@ -620,7 +622,7 @@ public class SMTPServerTest {
// no message there, yet
assertThat(queue.getLastMail())
.as("no mail received by mail server")
- .isNull();;
+ .isNull();
smtp.helo(InetAddress.getLocalHost().toString());
smtp.setSender("mail@localhost");
@@ -1285,7 +1287,7 @@ public class SMTPServerTest {
.isFalse();
smtpProtocol.sendCommand("AUTH PLAIN");
- smtpProtocol.sendCommand(Base64.encodeAsString("\0" + noexistUserName + "\0pwd\0"));
+ smtpProtocol.sendCommand(Base64.getEncoder().encodeToString(("\0" + noexistUserName + "\0pwd\0").getBytes(UTF_8)));
// smtpProtocol.sendCommand(noexistUserName+"pwd".toCharArray());
assertThat(smtpProtocol.getReplyCode())
.as("expected error")
@@ -1294,13 +1296,13 @@ public class SMTPServerTest {
usersRepository.addUser(Username.of(userName), "pwd");
smtpProtocol.sendCommand("AUTH PLAIN");
- smtpProtocol.sendCommand(Base64.encodeAsString("\0" + userName + "\0wrongpwd\0"));
+ smtpProtocol.sendCommand(Base64.getEncoder().encodeToString(("\0" + userName + "\0wrongpwd\0").getBytes(UTF_8)));
assertThat(smtpProtocol.getReplyCode())
.as("expected error")
.isEqualTo(535);
smtpProtocol.sendCommand("AUTH PLAIN");
- smtpProtocol.sendCommand(Base64.encodeAsString("\0" + userName + "\0pwd\0"));
+ smtpProtocol.sendCommand(Base64.getEncoder().encodeToString(("\0" + userName + "\0pwd\0").getBytes(UTF_8)));
assertThat(smtpProtocol.getReplyCode())
.as("authenticated")
.isEqualTo(235);
@@ -1339,7 +1341,7 @@ public class SMTPServerTest {
smtpProtocol.setSender("");
smtpProtocol.sendCommand("AUTH PLAIN");
- smtpProtocol.sendCommand(Base64.encodeAsString("\0" + userName + "\0pwd\0"));
+ smtpProtocol.sendCommand(Base64.getEncoder().encodeToString(("\0" + userName + "\0pwd\0").getBytes(UTF_8)));
assertThat(smtpProtocol.getReplyCode())
.as("authenticated")
.isEqualTo(235);
@@ -1558,7 +1560,7 @@ public class SMTPServerTest {
usersRepository.addUser(Username.of(userName), "pwd");
smtpProtocol.sendCommand("AUTH PLAIN");
- smtpProtocol.sendCommand(Base64.encodeAsString("\0" + userName + "\0pwd\0"));
+ smtpProtocol.sendCommand(Base64.getEncoder().encodeToString(("\0" + userName + "\0pwd\0").getBytes(UTF_8)));
assertThat(smtpProtocol.getReplyCode())
.as("authenticated")
.isEqualTo(235);
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org