Accepting request 394737 from home:Zaitor:branches:GNOME:Factory
New stable OBS-URL: https://build.opensuse.org/request/show/394737 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/evolution-ews?expand=0&rev=126
This commit is contained in:
parent
e960a5f429
commit
ba7c1e343d
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:ab6bba26605d52c934646612edea6d87034f6fdcf987f9486662de622cb3d739
|
|
||||||
size 708572
|
|
3
evolution-ews-3.20.2.tar.xz
Normal file
3
evolution-ews-3.20.2.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:f5ca7a7a0785f2bacb9990128e9e4b3814891387947639abbe646d962fff7a47
|
||||||
|
size 710460
|
@ -1,173 +0,0 @@
|
|||||||
From 47d23285f08ceb47a092ba6ff1816a4a3f3ac508 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Milan Crha <mcrha@redhat.com>
|
|
||||||
Date: Wed, 20 Apr 2016 22:38:21 +0200
|
|
||||||
Subject: Ask for password after NTLM/SSO authentication failure
|
|
||||||
|
|
||||||
Similar to libsoup, also evolution-ews checks /usr/bin/ntlm_auth
|
|
||||||
whether a password is required, while this test "fails" and it
|
|
||||||
looks like the password is never needed. Even the connection fails
|
|
||||||
later, the code didn't try to ask for the password, but it should.
|
|
||||||
---
|
|
||||||
src/addressbook/e-book-backend-ews.c | 7 +++++++
|
|
||||||
src/calendar/e-cal-backend-ews.c | 5 +++++
|
|
||||||
src/collection/e-ews-backend.c | 5 +++++
|
|
||||||
src/configuration/e-ews-config-utils.c | 10 ++++++++--
|
|
||||||
src/configuration/e-mail-config-ews-autodiscover.c | 12 ++++++++++--
|
|
||||||
src/server/e-ews-connection-utils.c | 10 ++++++++++
|
|
||||||
src/server/e-ews-connection-utils.h | 2 ++
|
|
||||||
7 files changed, 47 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/addressbook/e-book-backend-ews.c b/src/addressbook/e-book-backend-ews.c
|
|
||||||
index 7a635ee..61880d8 100644
|
|
||||||
--- a/src/addressbook/e-book-backend-ews.c
|
|
||||||
+++ b/src/addressbook/e-book-backend-ews.c
|
|
||||||
@@ -4202,6 +4202,13 @@ e_book_backend_ews_authenticate_sync (EBackend *backend,
|
|
||||||
} else {
|
|
||||||
ews_backend->priv->is_writable = FALSE;
|
|
||||||
e_backend_set_online (backend, FALSE);
|
|
||||||
+
|
|
||||||
+ if (e_ews_connection_utils_get_without_password (ews_settings) &&
|
|
||||||
+ result == E_SOURCE_AUTHENTICATION_REJECTED &&
|
|
||||||
+ !e_named_parameters_exists (credentials, E_SOURCE_CREDENTIAL_PASSWORD)) {
|
|
||||||
+ e_ews_connection_utils_force_off_ntlm_auth_check ();
|
|
||||||
+ result = E_SOURCE_AUTHENTICATION_REQUIRED;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
e_book_backend_set_writable (E_BOOK_BACKEND (backend), ews_backend->priv->is_writable);
|
|
||||||
diff --git a/src/calendar/e-cal-backend-ews.c b/src/calendar/e-cal-backend-ews.c
|
|
||||||
index c46dfcd..02ba9cc 100644
|
|
||||||
--- a/src/calendar/e-cal-backend-ews.c
|
|
||||||
+++ b/src/calendar/e-cal-backend-ews.c
|
|
||||||
@@ -4414,6 +4414,11 @@ e_cal_backend_ews_authenticate_sync (EBackend *backend,
|
|
||||||
|
|
||||||
ews_start_sync (cal_backend);
|
|
||||||
cbews_listen_notifications_cb (cal_backend, NULL, ews_settings);
|
|
||||||
+ } else if (e_ews_connection_utils_get_without_password (ews_settings) &&
|
|
||||||
+ result == E_SOURCE_AUTHENTICATION_REJECTED &&
|
|
||||||
+ !e_named_parameters_exists (credentials, E_SOURCE_CREDENTIAL_PASSWORD)) {
|
|
||||||
+ e_ews_connection_utils_force_off_ntlm_auth_check ();
|
|
||||||
+ result = E_SOURCE_AUTHENTICATION_REQUIRED;
|
|
||||||
}
|
|
||||||
|
|
||||||
g_object_unref (connection);
|
|
||||||
diff --git a/src/collection/e-ews-backend.c b/src/collection/e-ews-backend.c
|
|
||||||
index d09acd9..07ab145 100644
|
|
||||||
--- a/src/collection/e-ews-backend.c
|
|
||||||
+++ b/src/collection/e-ews-backend.c
|
|
||||||
@@ -1045,6 +1045,11 @@ ews_backend_authenticate_sync (EBackend *backend,
|
|
||||||
e_collection_backend_authenticate_children (E_COLLECTION_BACKEND (backend), credentials);
|
|
||||||
|
|
||||||
e_ews_backend_sync_folders (ews_backend, NULL, ews_backend_folders_synced_cb, NULL);
|
|
||||||
+ } else if (e_ews_connection_utils_get_without_password (ews_settings) &&
|
|
||||||
+ result == E_SOURCE_AUTHENTICATION_REJECTED &&
|
|
||||||
+ !e_named_parameters_exists (credentials, E_SOURCE_CREDENTIAL_PASSWORD)) {
|
|
||||||
+ e_ews_connection_utils_force_off_ntlm_auth_check ();
|
|
||||||
+ result = E_SOURCE_AUTHENTICATION_REQUIRED;
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
diff --git a/src/configuration/e-ews-config-utils.c b/src/configuration/e-ews-config-utils.c
|
|
||||||
index c6bcc7e..604a9be 100644
|
|
||||||
--- a/src/configuration/e-ews-config-utils.c
|
|
||||||
+++ b/src/configuration/e-ews-config-utils.c
|
|
||||||
@@ -383,12 +383,18 @@ e_ews_config_utils_open_connection_for (ESource *source,
|
|
||||||
|
|
||||||
if (result != E_SOURCE_AUTHENTICATION_ACCEPTED) {
|
|
||||||
g_clear_object (&conn);
|
|
||||||
- break;
|
|
||||||
+ if (result != E_SOURCE_AUTHENTICATION_REJECTED || local_error)
|
|
||||||
+ break;
|
|
||||||
}
|
|
||||||
- } else {
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (!conn) {
|
|
||||||
EShell *shell;
|
|
||||||
TryCredentialsData data;
|
|
||||||
|
|
||||||
+ e_ews_connection_utils_force_off_ntlm_auth_check ();
|
|
||||||
+ g_clear_error (&local_error);
|
|
||||||
+
|
|
||||||
shell = e_shell_get_default ();
|
|
||||||
|
|
||||||
data.ews_settings = g_object_ref (ews_settings);
|
|
||||||
diff --git a/src/configuration/e-mail-config-ews-autodiscover.c b/src/configuration/e-mail-config-ews-autodiscover.c
|
|
||||||
index f32db35..ef9d8ab 100644
|
|
||||||
--- a/src/configuration/e-mail-config-ews-autodiscover.c
|
|
||||||
+++ b/src/configuration/e-mail-config-ews-autodiscover.c
|
|
||||||
@@ -169,13 +169,21 @@ mail_config_ews_autodiscover_run_thread (GTask *task,
|
|
||||||
gboolean success = FALSE;
|
|
||||||
|
|
||||||
if (!g_cancellable_set_error_if_cancelled (cancellable, &local_error) && !local_error) {
|
|
||||||
- if (e_ews_connection_utils_get_without_password (async_context->ews_settings)) {
|
|
||||||
+ gboolean without_password;
|
|
||||||
+
|
|
||||||
+ without_password = e_ews_connection_utils_get_without_password (async_context->ews_settings);
|
|
||||||
+ if (without_password) {
|
|
||||||
success = e_ews_autodiscover_ws_url_sync (
|
|
||||||
async_context->ews_settings, async_context->email_address, "",
|
|
||||||
cancellable, &local_error);
|
|
||||||
- } else {
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (!without_password || g_error_matches (local_error, SOUP_HTTP_ERROR, SOUP_STATUS_UNAUTHORIZED)) {
|
|
||||||
EShell *shell;
|
|
||||||
|
|
||||||
+ e_ews_connection_utils_force_off_ntlm_auth_check ();
|
|
||||||
+ g_clear_error (&local_error);
|
|
||||||
+
|
|
||||||
shell = e_shell_get_default ();
|
|
||||||
|
|
||||||
success = e_credentials_prompter_loop_prompt_sync (e_shell_get_credentials_prompter (shell),
|
|
||||||
diff --git a/src/server/e-ews-connection-utils.c b/src/server/e-ews-connection-utils.c
|
|
||||||
index 7bff7b7..a9180b9 100644
|
|
||||||
--- a/src/server/e-ews-connection-utils.c
|
|
||||||
+++ b/src/server/e-ews-connection-utils.c
|
|
||||||
@@ -67,6 +67,8 @@ e_ews_connection_utils_check_element (const gchar *function_name,
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static gboolean force_off_ntlm_auth_check = FALSE;
|
|
||||||
+
|
|
||||||
static gboolean
|
|
||||||
ews_connect_check_ntlm_available (void)
|
|
||||||
{
|
|
||||||
@@ -80,6 +82,9 @@ ews_connect_check_ntlm_available (void)
|
|
||||||
gchar *command;
|
|
||||||
gint ret;
|
|
||||||
|
|
||||||
+ if (force_off_ntlm_auth_check)
|
|
||||||
+ return FALSE;
|
|
||||||
+
|
|
||||||
/* We are attempting to predict what libsoup will do. */
|
|
||||||
helper = g_getenv ("SOUP_NTLM_AUTH_DEBUG");
|
|
||||||
if (!helper)
|
|
||||||
@@ -145,6 +150,11 @@ ews_connect_check_ntlm_available (void)
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
+void
|
|
||||||
+e_ews_connection_utils_force_off_ntlm_auth_check (void)
|
|
||||||
+{
|
|
||||||
+ force_off_ntlm_auth_check = TRUE;
|
|
||||||
+}
|
|
||||||
|
|
||||||
/* Should we bother to attempt a connection without a password? Remember,
|
|
||||||
* this is *purely* an optimisation to avoid that extra round-trip if we
|
|
||||||
diff --git a/src/server/e-ews-connection-utils.h b/src/server/e-ews-connection-utils.h
|
|
||||||
index 3de7d13..71ad8d3 100644
|
|
||||||
--- a/src/server/e-ews-connection-utils.h
|
|
||||||
+++ b/src/server/e-ews-connection-utils.h
|
|
||||||
@@ -32,6 +32,8 @@ gboolean e_ews_connection_utils_check_element (const gchar *function_name,
|
|
||||||
const gchar *element_name,
|
|
||||||
const gchar *expected_name);
|
|
||||||
|
|
||||||
+void e_ews_connection_utils_force_off_ntlm_auth_check
|
|
||||||
+ (void);
|
|
||||||
gboolean e_ews_connection_utils_get_without_password
|
|
||||||
(CamelEwsSettings *ews_settings);
|
|
||||||
|
|
||||||
--
|
|
||||||
cgit v0.12
|
|
||||||
|
|
@ -1,3 +1,11 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue May 10 17:21:05 UTC 2016 - zaitor@opensuse.org
|
||||||
|
|
||||||
|
- Update to version 3.20.2:
|
||||||
|
+ Ask for password after NTLM/SSO authentication failure.
|
||||||
|
+ Bugs fixed: bgo#764976, bgo#765209, bgo#765398.
|
||||||
|
- Drop evolution-ews-ntlm-auth-test-failure.patch: Fixed upstream.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Apr 22 17:22:16 UTC 2016 - zaitor@opensuse.org
|
Fri Apr 22 17:22:16 UTC 2016 - zaitor@opensuse.org
|
||||||
|
|
||||||
|
@ -19,15 +19,13 @@
|
|||||||
Name: evolution-ews
|
Name: evolution-ews
|
||||||
# This should be updated upon major version changes; it should match BASE_VERSION as defined in configure.in.
|
# This should be updated upon major version changes; it should match BASE_VERSION as defined in configure.in.
|
||||||
%define evolution_base_version 3.20
|
%define evolution_base_version 3.20
|
||||||
Version: 3.20.1
|
Version: 3.20.2
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Exchange Connector for Evolution, compatible with Exchange 2007 and later
|
Summary: Exchange Connector for Evolution, compatible with Exchange 2007 and later
|
||||||
License: LGPL-2.1
|
License: LGPL-2.1
|
||||||
Group: Productivity/Networking/Email/Clients
|
Group: Productivity/Networking/Email/Clients
|
||||||
Url: http://projects.gnome.org/evolution/
|
Url: http://projects.gnome.org/evolution/
|
||||||
Source: http://download.gnome.org/sources/evolution-ews/3.20/%{name}-%{version}.tar.xz
|
Source: http://download.gnome.org/sources/evolution-ews/3.20/%{name}-%{version}.tar.xz
|
||||||
# PATCH-FIX-UPSTREAM evolution-ews-ntlm-auth-test-failure.patch boo#976110 bgo#765106 zaitor@opensuse.org -- Fix NTLM auth failure with latest samba
|
|
||||||
Patch0: evolution-ews-ntlm-auth-test-failure.patch
|
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
BuildRequires: intltool
|
BuildRequires: intltool
|
||||||
BuildRequires: translation-update-upstream
|
BuildRequires: translation-update-upstream
|
||||||
@ -88,7 +86,6 @@ later).
|
|||||||
%lang_package
|
%lang_package
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch0 -p1
|
|
||||||
translation-update-upstream
|
translation-update-upstream
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
Loading…
Reference in New Issue
Block a user