]> err.no Git - scalable-opengroupware.org/commitdiff
extract IMAP4 password from request
authorhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Wed, 20 Oct 2004 22:07:58 +0000 (22:07 +0000)
committerhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Wed, 20 Oct 2004 22:07:58 +0000 (22:07 +0000)
git-svn-id: http://svn.opengroupware.org/SOGo/trunk@417 d1b88da0-ebda-0310-925b-ed51d893ca5b

SOGo/Main/SOGoAuthenticator.h
SOGo/SoObjects/Mailer/ChangeLog
SOGo/SoObjects/Mailer/SOGoMailBaseObject.m
SOGo/SoObjects/Mailer/Version

index 2d4476d87eb0eb13b4fe815e80eea5c9d00442b2..31e7afcba32534d1d16967ce0967a136fe2d9867 100644 (file)
 
 #include <NGObjWeb/SoHTTPAuthenticator.h>
 
+/*
+  SOGoAuthenticator
+  
+  This just overrides the login/pwd check method and always returns YES since
+  the password is already checked in Apache.
+*/
+
 @interface SOGoAuthenticator : SoHTTPAuthenticator
 {
 }
index 954effab0d1006640faad0d4a77d91de7b5ebeef..a88df095d0e10041a4e763aa14437f0d14c05d1e 100644 (file)
@@ -1,3 +1,8 @@
+2004-10-21  Helge Hess  <helge.hess@opengroupware.org>
+
+       * SOGoMailBaseObject.m: extract IMAP4 password from HTTP basic
+         authentication (v0.9.36)
+
 2004-10-20  Marcus Mueller  <znek@mulle-kybernetik.com>
 
        * SOGoMailAccounts.m: changed methods according to new API of
index 26f02e11d6b96ddc4dcdab6ae4cbf31ea184790a..a6b8f63150b6c193f5dc28f6dec96eee60142f47 100644 (file)
 #include "SOGoMailManager.h"
 #include "common.h"
 #include <NGObjWeb/SoObject+SoDAV.h>
+#include <NGObjWeb/SoHTTPAuthenticator.h>
 #include <NGExtensions/NSURL+misc.h>
 
 @implementation SOGoMailBaseObject
 
-static BOOL debugOn   = YES;
+//static BOOL debugOn   = YES;
 static BOOL debugTree = NO;
 
 - (id)initWithImap4URL:(NSURL *)_url inContainer:(id)_container {
@@ -105,7 +106,29 @@ static BOOL debugTree = NO;
 }
 
 - (NSString *)imap4Password {
-  return [[NSUserDefaults standardUserDefaults] stringForKey:@"hackpwd"];
+  /*
+    Extract password from basic authentication.
+    
+    TODO: we might want to
+    a) move the primary code to SOGoMailAccount
+    b) cache the password
+  */
+  WORequest *rq;
+  NSString  *auth;
+  NSArray   *creds;
+  
+  rq = [[(WOApplication *)[WOApplication application] context] request];
+  if ((auth = [rq headerForKey:@"authorization"]) == nil) {
+    /* no basic auth */
+    return nil;
+  }
+  
+  creds = [SoHTTPAuthenticator parseCredentials:auth];
+  if ([creds count] < 2)
+    /* somehow invalid */
+    return nil;
+  
+  return [creds objectAtIndex:1]; /* the password */
 }
 
 - (NGImap4Client *)imap4ClientForURL:(NSURL *)_url password:(NSString *)_pwd {
index 79d695bdd74ffdf1f55a3e404e0b303a1ca31a54..734431d7d47737fd4fef07c44a54d6742a6cdf11 100644 (file)
@@ -1,6 +1,6 @@
-# $Id$
+# Version file
 
-SUBMINOR_VERSION:=35
+SUBMINOR_VERSION:=36
 
 # v0.9.35 requires SOGoLogic v0.9.24
 # v0.9.34 requires SOGoLogic v0.9.22