diff options
author | Szymon Kłos <eszkadev@gmail.com> | 2015-07-02 11:24:39 +0200 |
---|---|---|
committer | Szymon Kłos <eszkadev@gmail.com> | 2015-07-16 09:53:23 +0200 |
commit | 298272f9dc154936e3bb813519903d12d35b2af9 (patch) | |
tree | f1f778b9f2bcd43813e8c124bf27d1169c8e9e72 | |
parent | 51b316c80fe2ec7b4f01b56714358541ac1205fd (diff) |
tdf#84190 : when auth fails, don't remember passwords for cmis
Change-Id: Ia1e0d553556693e0efa6de0bfc6f8b0ae9d40b5d
-rw-r--r-- | include/ucbhelper/simpleauthenticationrequest.hxx | 8 | ||||
-rw-r--r-- | ucb/source/ucp/cmis/auth_provider.cxx | 2 | ||||
-rw-r--r-- | ucb/source/ucp/cmis/cmis_content.cxx | 4 | ||||
-rw-r--r-- | ucbhelper/source/provider/simpleauthenticationrequest.cxx | 32 |
4 files changed, 31 insertions, 15 deletions
diff --git a/include/ucbhelper/simpleauthenticationrequest.hxx b/include/ucbhelper/simpleauthenticationrequest.hxx index 1e9a740743a1..36266a192410 100644 --- a/include/ucbhelper/simpleauthenticationrequest.hxx +++ b/include/ucbhelper/simpleauthenticationrequest.hxx @@ -60,8 +60,9 @@ private: bool bCanSetUserName, bool bCanSetPassword, bool bCanSetAccount, - bool bAllowPersistentStoring, - bool bAllowUseSystemCredentials ); + bool bAllowPersistentStoring, + bool bAllowUseSystemCredentials, + bool bAllowSessionStoring = true ); public: /** Specification whether some entity (realm, username, password, account) @@ -97,7 +98,8 @@ public: const OUString & rPassword, const OUString & rAccount, bool bAllowPersistentStoring, - bool bAllowUseSystemCredentials ); + bool bAllowUseSystemCredentials, + bool bAllowSessionStoring = true ); /** diff --git a/ucb/source/ucp/cmis/auth_provider.cxx b/ucb/source/ucp/cmis/auth_provider.cxx index 97414f19e864..500b601b7179 100644 --- a/ucb/source/ucp/cmis/auth_provider.cxx +++ b/ucb/source/ucp/cmis/auth_provider.cxx @@ -38,7 +38,7 @@ namespace cmis m_sUrl, m_sBindingUrl, OUString(), STD_TO_OUSTR( username ), STD_TO_OUSTR( password ), - OUString(), true, false ); + OUString(), true, false, false ); xIH->handle( xRequest.get() ); rtl::Reference< ucbhelper::InteractionContinuation > xSelection diff --git a/ucb/source/ucp/cmis/cmis_content.cxx b/ucb/source/ucp/cmis/cmis_content.cxx index 03a9dafa0b8b..664ddfc68b0e 100644 --- a/ucb/source/ucp/cmis/cmis_content.cxx +++ b/ucb/source/ucp/cmis/cmis_content.cxx @@ -362,7 +362,6 @@ namespace cmis ONEDRIVE_SCOPE, ONEDRIVE_REDIRECT_URI, ONEDRIVE_CLIENT_ID, ONEDRIVE_CLIENT_SECRET ) ); } - m_pSession = libcmis::SessionFactory::createSession( OUSTR_TO_STDSTR( m_aURL.getBindingUrl( ) ), rUsername, rPassword, OUSTR_TO_STDSTR( m_aURL.getRepositoryId( ) ), false, oauth2Data ); @@ -372,7 +371,8 @@ namespace cmis uno::Sequence< uno::Any >( 0 ), xEnv, OUString( ) ); - m_pProvider->registerSession( sSessionId, m_pSession ); + else + m_pProvider->registerSession( sSessionId, m_pSession ); } else { diff --git a/ucbhelper/source/provider/simpleauthenticationrequest.cxx b/ucbhelper/source/provider/simpleauthenticationrequest.cxx index cdaa80ab81f1..ad6c9cd8a8c4 100644 --- a/ucbhelper/source/provider/simpleauthenticationrequest.cxx +++ b/ucbhelper/source/provider/simpleauthenticationrequest.cxx @@ -33,7 +33,8 @@ SimpleAuthenticationRequest::SimpleAuthenticationRequest( const OUString & rPassword, const OUString & rAccount, bool bAllowPersistentStoring, - bool bAllowUseSystemCredentials ) + bool bAllowUseSystemCredentials, + bool bAllowSessionStoring ) { // Fill request... @@ -61,7 +62,8 @@ SimpleAuthenticationRequest::SimpleAuthenticationRequest( true, aRequest.HasAccount, bAllowPersistentStoring, - bAllowUseSystemCredentials ); + bAllowUseSystemCredentials, + bAllowSessionStoring ); } @@ -115,17 +117,29 @@ void SimpleAuthenticationRequest::initialize( bool bCanSetPassword, bool bCanSetAccount, bool bAllowPersistentStoring, - bool bAllowUseSystemCredentials ) + bool bAllowUseSystemCredentials, + bool bAllowSessionStoring ) { setRequest( uno::makeAny( rRequest ) ); // Fill continuations... - uno::Sequence< ucb::RememberAuthentication > aRememberModes( - bAllowPersistentStoring ? 3 : 2 ); - aRememberModes[ 0 ] = ucb::RememberAuthentication_NO; - aRememberModes[ 1 ] = ucb::RememberAuthentication_SESSION; - if (bAllowPersistentStoring) - aRememberModes[ 2 ] = ucb::RememberAuthentication_PERSISTENT; + unsigned int nSize = 1; + unsigned int nPos = 0; + + if( bAllowSessionStoring ) + nSize++; + + if( bAllowPersistentStoring ) + nSize++; + + uno::Sequence< ucb::RememberAuthentication > aRememberModes( nSize ); + aRememberModes[ nPos++ ] = ucb::RememberAuthentication_NO; + + if( bAllowSessionStoring ) + aRememberModes[ nPos++ ] = ucb::RememberAuthentication_SESSION; + + if ( bAllowPersistentStoring ) + aRememberModes[ nPos++ ] = ucb::RememberAuthentication_PERSISTENT; m_xAuthSupplier = new InteractionSupplyAuthentication( |