Author: sebb
Date: Fri Mar 24 16:19:38 2017
New Revision: 1788497

URL: http://svn.apache.org/viewvc?rev=1788497&view=rev
Log:
NET-633 Add XOAUTH2 to IMAP and SMTP\nThis fixes #2

Modified:
    commons/proper/net/trunk/src/changes/changes.xml
    
commons/proper/net/trunk/src/main/java/org/apache/commons/net/imap/AuthenticatingIMAPClient.java
    
commons/proper/net/trunk/src/main/java/org/apache/commons/net/smtp/AuthenticatingSMTPClient.java

Modified: commons/proper/net/trunk/src/changes/changes.xml
URL: 
http://svn.apache.org/viewvc/commons/proper/net/trunk/src/changes/changes.xml?rev=1788497&r1=1788496&r2=1788497&view=diff
==============================================================================
--- commons/proper/net/trunk/src/changes/changes.xml [utf-8] (original)
+++ commons/proper/net/trunk/src/changes/changes.xml [utf-8] Fri Mar 24 
16:19:38 2017
@@ -71,6 +71,9 @@ This is mainly a bug-fix release. See fu
  However it is not source compatible with releases before 3.4, as some methods 
were added to the interface NtpV3Packet in 3.4
         
 ">
+            <action issue="NET-633" type="update" dev="sebb" due-to="n0rm1e">
+            Add XOAUTH2 to IMAP and SMTP
+            </action>
             <action issue="NET-632" type="update" dev="sebb" 
due-to="prakapenka">
             FTPHTTPClient - support for encoding other than UTF-8
             </action>

Modified: 
commons/proper/net/trunk/src/main/java/org/apache/commons/net/imap/AuthenticatingIMAPClient.java
URL: 
http://svn.apache.org/viewvc/commons/proper/net/trunk/src/main/java/org/apache/commons/net/imap/AuthenticatingIMAPClient.java?rev=1788497&r1=1788496&r2=1788497&view=diff
==============================================================================
--- 
commons/proper/net/trunk/src/main/java/org/apache/commons/net/imap/AuthenticatingIMAPClient.java
 (original)
+++ 
commons/proper/net/trunk/src/main/java/org/apache/commons/net/imap/AuthenticatingIMAPClient.java
 Fri Mar 24 16:19:38 2017
@@ -204,6 +204,7 @@ public class AuthenticatingIMAPClient ex
                 return result == IMAPReply.OK;
             }
             case XOAUTH:
+            case XOAUTH2:
             {
                 int result = sendData(username);
                 if (result == IMAPReply.OK)
@@ -248,7 +249,9 @@ public class AuthenticatingIMAPClient ex
         /** The unstandarised Microsoft LOGIN method, which sends the password 
unencrypted (insecure). */
         LOGIN("LOGIN"),
         /** XOAUTH */
-        XOAUTH("XOAUTH");
+        XOAUTH("XOAUTH"),
+        /** XOAUTH 2 */
+        XOAUTH2("XOAUTH2");
 
         private final String authName;
 

Modified: 
commons/proper/net/trunk/src/main/java/org/apache/commons/net/smtp/AuthenticatingSMTPClient.java
URL: 
http://svn.apache.org/viewvc/commons/proper/net/trunk/src/main/java/org/apache/commons/net/smtp/AuthenticatingSMTPClient.java?rev=1788497&r1=1788496&r2=1788497&view=diff
==============================================================================
--- 
commons/proper/net/trunk/src/main/java/org/apache/commons/net/smtp/AuthenticatingSMTPClient.java
 (original)
+++ 
commons/proper/net/trunk/src/main/java/org/apache/commons/net/smtp/AuthenticatingSMTPClient.java
 Fri Mar 24 16:19:38 2017
@@ -190,10 +190,10 @@ public class AuthenticatingSMTPClient ex
      *
      * @param method the method to use, one of the {@link 
AuthenticatingSMTPClient.AUTH_METHOD} enum values
      * @param username the user name.
-     *        If the method is XOAUTH, then this is used as the plain text 
oauth protocol parameter string
+     *        If the method is XOAUTH/XOAUTH2, then this is used as the plain 
text oauth protocol parameter string
      *        which is Base64-encoded for transmission.
      * @param password the password for the username.
-     *        Ignored for XOAUTH.
+     *        Ignored for XOAUTH/XOAUTH2.
      *
      * @return True if successfully completed, false if not.
      * @throws SMTPConnectionClosedException
@@ -257,7 +257,7 @@ public class AuthenticatingSMTPClient ex
             return SMTPReply.isPositiveCompletion(sendCommand(
                 
Base64.encodeBase64StringUnChunked(password.getBytes(getCharset()))));
         }
-        else if (method.equals(AUTH_METHOD.XOAUTH))
+        else if (method.equals(AUTH_METHOD.XOAUTH) || 
method.equals(AUTH_METHOD.XOAUTH2))
         {
             return SMTPReply.isPositiveIntermediate(sendCommand(
                     
Base64.encodeBase64StringUnChunked(username.getBytes(getCharset()))
@@ -299,7 +299,9 @@ public class AuthenticatingSMTPClient ex
         /** The unstandarised Microsoft LOGIN method, which sends the password 
unencrypted (insecure). */
         LOGIN,
         /** XOAuth method which accepts a signed and base64ed OAuth URL. */
-        XOAUTH;
+        XOAUTH,
+        /** XOAuth 2 method which accepts a signed and base64ed OAuth JSON. */
+        XOAUTH2;
 
         /**
          * Gets the name of the given authentication method suitable for the 
server.
@@ -316,6 +318,8 @@ public class AuthenticatingSMTPClient ex
                 return "LOGIN";
             } else if (method.equals(AUTH_METHOD.XOAUTH)) {
                 return "XOAUTH";
+            } else if (method.equals(AUTH_METHOD.XOAUTH2)) {
+                return "XOAUTH2";
             } else {
                 return null;
             }


Reply via email to