[evolution-patches] [EDS bug 415922 ISA Server support] Patch to add support for ISA Server 2004's Forms-Based Authentication



ISA Server 2004 has a Outlook Web Access-like Forms-Based Authentication to weed out unauthorized users before they touch the machine running OWA. The URLs are slightly different. This patch adds support for ISA Server 2004 acting as a proxy to OWA.

Kenny Root
diff -urN evolution-data-server-1.8.3/servers/exchange/lib/e2k-autoconfig.c evolution-data-server-1.8.3-isasupport/servers/exchange/lib/e2k-autoconfig.c
--- evolution-data-server-1.8.3/servers/exchange/lib/e2k-autoconfig.c	2007-01-29 03:44:31.000000000 -0600
+++ evolution-data-server-1.8.3-isasupport/servers/exchange/lib/e2k-autoconfig.c	2007-03-07 20:32:00.000000000 -0600
@@ -442,7 +442,9 @@
 
 	/* A redirection to "logon.asp" means this is Exchange 5.5
 	 * OWA. A redirection to "owalogon.asp" means this is Exchange
-	 * 2003 forms-based authentication. Other redirections most
+	 * 2003 forms-based authentication. A redirection to
+	 * "CookieAuth.dll" means that it's an Exchange 2003 server
+	 * behind an ISA Server 2004 proxy. Other redirections most
 	 * likely indicate that the user's mailbox has been moved to a
 	 * new server.
 	 */
@@ -460,7 +462,8 @@
 		if (strstr (location, "/logon.asp")) {
 			*result = E2K_AUTOCONFIG_EXCHANGE_5_5;
 			goto done;
-		} else if (strstr (location, "/owalogon.asp")) {
+		} else if (strstr (location, "/owalogon.asp") ||
+			   strstr (location, "/CookieAuth.dll")) {
 			if (e2k_context_fba (ctx, msg))
 				goto try_again;
 			*result = E2K_AUTOCONFIG_AUTH_ERROR;
diff -urN evolution-data-server-1.8.3/servers/exchange/lib/e2k-context.c evolution-data-server-1.8.3-isasupport/servers/exchange/lib/e2k-context.c
--- evolution-data-server-1.8.3/servers/exchange/lib/e2k-context.c	2007-01-29 03:44:31.000000000 -0600
+++ evolution-data-server-1.8.3-isasupport/servers/exchange/lib/e2k-context.c	2007-03-07 20:30:24.000000000 -0600
@@ -603,6 +603,7 @@
 		g_free (suri->path);
 		suri->path = g_strdup (value);
 		action = soup_uri_to_string (suri, FALSE);
+		soup_uri_decode (action);
 		soup_uri_free (suri);
 	} else
 		action = g_strdup (value);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]