summaryrefslogtreecommitdiff
path: root/comphelper
diff options
context:
space:
mode:
authorGiuseppe Castagno <giuseppe.castagno@acca-esse.eu>2016-08-05 17:44:25 +0200
committerGiuseppe Castagno <giuseppe.castagno@acca-esse.eu>2016-08-05 18:12:50 +0000
commitecba128020572966a161899083b7147e2adc5766 (patch)
treee4de5a9c23f2de357f32ca1ec9b72d19cf6d2c8b /comphelper
parent91cad2de121a10c470b30832ac28597bdffd7101 (diff)
Fix certificate validation interaction
This enables the certificate validation when StillReadWriteInteraction::StillReadWriteInteraction interaction handler is used. Certificate validation is needed for Web/WebDAV files. Change-Id: I38cba9fc8b586953477d7df02acfcc8347603220 Reviewed-on: https://gerrit.libreoffice.org/27914 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Giuseppe Castagno <giuseppe.castagno@acca-esse.eu>
Diffstat (limited to 'comphelper')
-rw-r--r--comphelper/source/misc/stillreadwriteinteraction.cxx18
1 files changed, 13 insertions, 5 deletions
diff --git a/comphelper/source/misc/stillreadwriteinteraction.cxx b/comphelper/source/misc/stillreadwriteinteraction.cxx
index 8b80d5c5f791..f4fdf76c3ae5 100644
--- a/comphelper/source/misc/stillreadwriteinteraction.cxx
+++ b/comphelper/source/misc/stillreadwriteinteraction.cxx
@@ -29,14 +29,16 @@
#include <com/sun/star/ucb/AuthenticationRequest.hpp>
+#include <com/sun/star/ucb/CertificateValidationRequest.hpp>
+
namespace comphelper{
StillReadWriteInteraction::StillReadWriteInteraction(const css::uno::Reference< css::task::XInteractionHandler >& xHandler,
- const css::uno::Reference< css::task::XInteractionHandler >& xAuthenticationHandler)
+ const css::uno::Reference< css::task::XInteractionHandler >& xAuxiliaryHandler)
: m_bUsed (false)
, m_bHandledByMySelf (false)
, m_bHandledByInternalHandler(false)
- , m_xAuthenticationHandler(xAuthenticationHandler)
+ , m_xAuxiliaryHandler(xAuxiliaryHandler)
{
::std::vector< ::ucbhelper::InterceptedInteraction::InterceptedRequest > lInterceptions;
::ucbhelper::InterceptedInteraction::InterceptedRequest aInterceptedRequest;
@@ -56,6 +58,11 @@ StillReadWriteInteraction::StillReadWriteInteraction(const css::uno::Reference<
aInterceptedRequest.Continuation = cppu::UnoType<css::task::XInteractionApprove>::get();
lInterceptions.push_back(aInterceptedRequest);
+ aInterceptedRequest.Handle = HANDLE_CERTIFICATEVALIDATIONREQUESTEXCEPTION;
+ aInterceptedRequest.Request <<= css::ucb::CertificateValidationRequest();
+ aInterceptedRequest.Continuation = cppu::UnoType<css::task::XInteractionApprove>::get();
+ lInterceptions.push_back(aInterceptedRequest);
+
setInterceptedHandler(xHandler);
setInterceptions(lInterceptions);
}
@@ -105,12 +112,13 @@ ucbhelper::InterceptedInteraction::EInterceptionState StillReadWriteInteraction:
bAbort = true;
}
break;
+ case HANDLE_CERTIFICATEVALIDATIONREQUESTEXCEPTION:
case HANDLE_AUTHENTICATIONREQUESTEXCEPTION:
{
-//use internal authentication dedicated handler and return
- if (m_xAuthenticationHandler.is())
+//use internal auxiliary handler and return
+ if (m_xAuxiliaryHandler.is())
{
- m_xAuthenticationHandler->handle(xRequest);
+ m_xAuxiliaryHandler->handle(xRequest);
return ::ucbhelper::InterceptedInteraction::E_INTERCEPTED;
}
else //simply abort