office-gobmx/ucb
Julian Kalinowski af7e5983e5 tdf#133673 fix webdav lock refresh with Auth:Negotiate
NeonSession::NeonAuth requires an AuthListener to be set in the
RequestEnvironment (RE). After a HTTP 401, the Negotiate challenge should be
handled. The whole RE however is reset in HandleError, which is called after
every request. Usually, this is not a problem because the RE is re-set at the
beginning of almost all requests (PUT, GET, PROPFIND, ...).
But when refreshing locks this is not the case, as the LockStore does not know
any RequestEnvironment.
NeonSession::NeonAuth is then called in a post-send hook after a HTTP 401, the
AuthListener is null and in consequence Neon's ah_post_send does not return
NE_RETRY. So there will be no retry with the correct authorization header.

This patch removes the reset of the RequestEnvironment in HandleError, thus
keeping it in the session for further use.

Change-Id: Ib1a5eff08072f9ef003e760c5f40d9ad26c6cad1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96191
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2020-06-12 13:08:45 +02:00
..
qa Upcoming loplugin:elidestringvar: ucb 2020-06-05 16:01:01 +02:00
source tdf#133673 fix webdav lock refresh with Auth:Negotiate 2020-06-12 13:08:45 +02:00
test/com/sun/star/comp/ucb
CppunitTest_ucb_webdav_local_neon.mk
CppunitTest_ucb_webdav_neon_opts.mk
CppunitTest_ucb_webdav_propfindcache.mk
CppunitTest_ucb_webdav_res_access.mk
IwyuFilter_ucb.yaml
JunitTest_ucb_complex.mk
JunitTest_ucb_unoapi.mk
Library_cached1.mk
Library_srtrs1.mk
Library_ucb1.mk
Library_ucpcmis1.mk
Library_ucpdav1.mk
Library_ucpexpand1.mk
Library_ucpext.mk
Library_ucpfile1.mk
Library_ucpftp1.mk
Library_ucpgio1.mk
Library_ucphier1.mk
Library_ucpimage.mk
Library_ucppkg1.mk
Library_ucptdoc1.mk
Makefile
Module_ucb.mk
README

Universal Content Broker (has ucp) which do things like convert files to strings in content broker world.

mmeeks: so - I renamed the old LGPLv3 webdav code to webdav-neon, and imported
the (not built) serf webdav ucp into the old space. so that in future, we can
merge changes more easily - and still choose which to use. cbosdonnat kindly
volunteered to do some comparative analysis of the two codebases to decide which
is best for what etc.