Permalink
Browse files

- Add support for IMAP proxy authentication (#1486690)

  • Loading branch information...
alecpl committed Oct 22, 2010
1 parent 63d4d61 commit a1fe6bd11d7afb8ddd42d1fe465a6d2d93b51592
Showing with 21 additions and 3 deletions.
  1. +2 −1 CHANGELOG
  2. +7 −1 config/main.inc.php.dist
  3. +2 −0 program/include/rcmail.php
  4. +10 −1 program/include/rcube_imap_generic.php
View
@@ -44,7 +44,8 @@ CHANGELOG Roundcube Webmail
- Add SASL-IR support in IMAP (RFC 4959)
- Add LOGINDISABLED support (RFC 2595)
- Add support for AUTH=PLAIN in IMAP authentication
-- Re-implemented SMTP proxy authorization support
+- Re-implemented SMTP proxy authentication support
+- Add support for IMAP proxy authentication (#1486690)
RELEASE 0.4.2
-------------
View
@@ -87,6 +87,12 @@ $rcmail_config['imap_force_caps'] = false;
// IMAP connection timeout, in seconds. Default: 0 (no limit)
$rcmail_config['imap_timeout'] = 0;
+// Optional IMAP authentication identifier to be used as authorization proxy
+$rcmail_config['imap_auth_cid'] = null;
+
+// Optional IMAP authentication password to be used for imap_auth_cid
+$rcmail_config['imap_auth_pw'] = null;
+
// ----------------------------------
// SMTP
// ----------------------------------
@@ -120,7 +126,7 @@ $rcmail_config['smtp_auth_type'] = '';
// Optional SMTP authentication identifier to be used as authorization proxy
$rcmail_config['smtp_auth_cid'] = null;
-// Optional SMTP authorization password to be used for smtp_auth_cid
+// Optional SMTP authentication password to be used for smtp_auth_cid
$rcmail_config['smtp_auth_pw'] = null;
// SMTP HELO host
@@ -501,6 +501,8 @@ public function imap_init($connect = false)
// can save time detecting them using NAMESPACE and LIST
$options = array(
'auth_method' => $this->config->get('imap_auth_type', 'check'),
+ 'auth_cid' => $this->config->get('imap_auth_cid'),
+ 'auth_pw' => $this->config->get('imap_auth_pw'),
'delimiter' => isset($_SESSION['imap_delimiter']) ? $_SESSION['imap_delimiter'] : $this->config->get('imap_delimiter'),
'rootdir' => isset($_SESSION['imap_root']) ? $_SESSION['imap_root'] : $this->config->get('imap_root'),
'debug_mode' => (bool) $this->config->get('imap_debug', 0),
@@ -420,7 +420,16 @@ function authenticate($user, $pass, $type='PLAIN')
}
}
else { // PLAIN
- $reply = base64_encode($user . chr(0) . $user . chr(0) . $pass);
+ // proxy authentication
+ if (!empty($this->prefs['auth_cid'])) {
+ $authc = $this->prefs['auth_cid'];
+ $pass = $this->prefs['auth_pw'];
+ }
+ else {
+ $authc = $user;
+ }
+
+ $reply = base64_encode($user . chr(0) . $authc . chr(0) . $pass);
// RFC 4959 (SASL-IR): save one round trip
if ($this->getCapability('SASL-IR')) {

0 comments on commit a1fe6bd

Please sign in to comment.