diff options
author | Kurt Zenker <kz@openoffice.org> | 2009-06-03 16:42:24 +0000 |
---|---|---|
committer | Kurt Zenker <kz@openoffice.org> | 2009-06-03 16:42:24 +0000 |
commit | cf1a66987abce026206ef2be5089847dcca1ae88 (patch) | |
tree | e9848d57cd48558bfc0a106057440c560b144a84 /ucbhelper | |
parent | 847a872bcffc2049bc43b1318bb447f73a379c2d (diff) |
CWS-TOOLING: integrate CWS tkr20
2009-05-08 08:31:10 +0200 tkr r271700 : ##i97329# fixed merge conflict during rebase
2009-05-07 08:30:15 +0200 tkr r271622 : CWS-TOOLING: rebase CWS tkr20 to trunk@271427 (milestone: DEV300:m47)
2009-04-17 14:36:42 +0200 tkr r270947 : #i73893# implemented the XCommandProcessor:Abort method
2009-03-20 14:08:15 +0100 tkr r269806 : #i96392# use $(CPU) variable to determine if openssl should build with 64 bit
2009-03-19 16:15:26 +0100 tkr r269754 : #i96392# use $(CPU) variable to determine if openssl should build with 64 bit
2009-03-19 16:09:04 +0100 tkr r269753 : #i96392# use $(CPU) variable to determine if openssl should build with 64 bit
2009-03-19 15:57:05 +0100 tkr r269752 : #i97003# Ask password container if persistent storage should be used
2009-03-19 15:53:18 +0100 tkr r269751 : #i97003# ask if password container should use the persistent storage
2009-03-19 09:08:18 +0100 tkr r269726 : #i99774# ucb: patch to silence warnings in gcc 4.4
2009-03-19 09:05:38 +0100 tkr r269725 : #i99046# remove mime-type
2009-03-19 09:04:56 +0100 tkr r269724 : #i97329# fixed truncated text on buttons
2009-03-19 09:03:50 +0100 tkr r269723 : #i97542# Warning errors in uui / empty bodys in for loops
Diffstat (limited to 'ucbhelper')
-rw-r--r-- | ucbhelper/inc/ucbhelper/simpleauthenticationrequest.hxx | 60 | ||||
-rw-r--r-- | ucbhelper/source/provider/simpleauthenticationrequest.cxx | 137 |
2 files changed, 165 insertions, 32 deletions
diff --git a/ucbhelper/inc/ucbhelper/simpleauthenticationrequest.hxx b/ucbhelper/inc/ucbhelper/simpleauthenticationrequest.hxx index e4190da641e5..ddb2e655de8b 100644 --- a/ucbhelper/inc/ucbhelper/simpleauthenticationrequest.hxx +++ b/ucbhelper/inc/ucbhelper/simpleauthenticationrequest.hxx @@ -33,6 +33,7 @@ #include <rtl/ref.hxx> #include <ucbhelper/interactionrequest.hxx> +#include <com/sun/star/ucb/AuthenticationRequest.hpp> #include "ucbhelper/ucbhelperdllapi.h" namespace ucbhelper { @@ -61,6 +62,14 @@ class UCBHELPER_DLLPUBLIC SimpleAuthenticationRequest : public ucbhelper::Intera rtl::Reference< ucbhelper::InteractionSupplyAuthentication > m_xAuthSupplier; +private: + void initialize( ::com::sun::star::ucb::AuthenticationRequest aRequest, + const sal_Bool & bCanSetRealm, + const sal_Bool & bCanSetUserName, + const sal_Bool & bCanSetPassword, + const sal_Bool & bCanSetAccount, + const sal_Bool & bAllowPersistentStoring ); + public: /** Specification whether some entity (realm, username, password, account) is either not applicable at all, has a fixed value, or is modifiable. @@ -94,6 +103,26 @@ public: * Constructor. * * @param rServerName contains a server name. + * @param rRealm contains a realm, if applicable. + * @param rUserName contains a username, if available (for instance from + * a previous try). + * @param rPassword contains a password, if available (for instance from + * a previous try). + * @param rAccount contains an account, if applicable. + * @param bAllowPersistentStoring specifies if the credentials should stored in the passowrd container persistently + */ + SimpleAuthenticationRequest( const rtl::OUString & rServerName, + const rtl::OUString & rRealm, + const rtl::OUString & rUserName, + const rtl::OUString & rPassword, + const rtl::OUString & rAccount, + const sal_Bool & bAllowPersistentStoring); + + + /** + * Constructor. + * + * @param rServerName contains a server name. * @param eRealmType specifies whether a realm is applicable and modifiable. * @param rRealm contains a realm, if applicable. @@ -120,6 +149,37 @@ public: const rtl::OUString & rAccount = rtl::OUString() ); + /** + * Constructor. + * + * @param rServerName contains a server name. + * @param eRealmType specifies whether a realm is applicable and + modifiable. + * @param rRealm contains a realm, if applicable. + * @param eUserNameType specifies whether a username is applicable and + modifiable. + * @param rUserName contains a username, if available (for instance from + * a previous try). + * @param ePasswordType specifies whether a password is applicable and + modifiable. + * @param rPassword contains a password, if available (for instance from + * a previous try). + * @param eAccountType specifies whether an account is applicable and + modifiable. + * @param rAccount contains an account, if applicable. + * @param bAllowPersistentStoring specifies if the credentials should stored in the passowrd container persistently + */ + SimpleAuthenticationRequest( const rtl::OUString & rServerName, + EntityType eRealmType, + const rtl::OUString & rRealm, + EntityType eUserNameType, + const rtl::OUString & rUserName, + EntityType ePasswordType, + const rtl::OUString & rPassword, + EntityType eAccountType, + const rtl::OUString & rAccount, + const sal_Bool & bAllowPersistentStoring); + /** * This method returns the supplier for the missing authentication data, * that, for instance can be used to query the password supplied by the diff --git a/ucbhelper/source/provider/simpleauthenticationrequest.cxx b/ucbhelper/source/provider/simpleauthenticationrequest.cxx index c70dc40db2f7..16570f7f012d 100644 --- a/ucbhelper/source/provider/simpleauthenticationrequest.cxx +++ b/ucbhelper/source/provider/simpleauthenticationrequest.cxx @@ -30,7 +30,7 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_ucbhelper.hxx" -#include <com/sun/star/ucb/AuthenticationRequest.hpp> +#include <com/sun/star/task/XMasterPasswordHandling.hpp> #include <ucbhelper/simpleauthenticationrequest.hxx> using namespace com::sun::star; @@ -44,7 +44,7 @@ SimpleAuthenticationRequest::SimpleAuthenticationRequest( const rtl::OUString & rPassword, const rtl::OUString & rAccount ) { - // Fill request... + // Fill request... ucb::AuthenticationRequest aRequest; // aRequest.Message = // OUString // aRequest.Context = // XInterface @@ -62,20 +62,73 @@ SimpleAuthenticationRequest::SimpleAuthenticationRequest( if ( aRequest.HasAccount ) aRequest.Account = rAccount; + initialize(aRequest, + sal_False, + sal_True, + sal_True, + aRequest.HasAccount, + sal_False); +} +//========================================================================= +SimpleAuthenticationRequest::SimpleAuthenticationRequest( + const rtl::OUString & rServerName, + const rtl::OUString & rRealm, + const rtl::OUString & rUserName, + const rtl::OUString & rPassword, + const rtl::OUString & rAccount, + const sal_Bool & bAllowPersistentStoring ) +{ + + // Fill request... + ucb::AuthenticationRequest aRequest; +// aRequest.Message = // OUString +// aRequest.Context = // XInterface + aRequest.Classification = task::InteractionClassification_ERROR; + aRequest.ServerName = rServerName; +// aRequest.Diagnostic = // OUString + aRequest.HasRealm = ( rRealm.getLength() > 0 ); + if ( aRequest.HasRealm ) + aRequest.Realm = rRealm; + aRequest.HasUserName = sal_True; + aRequest.UserName = rUserName; + aRequest.HasPassword = sal_True; + aRequest.Password = rPassword; + aRequest.HasAccount = ( rAccount.getLength() > 0 ); + if ( aRequest.HasAccount ) + aRequest.Account = rAccount; + + initialize(aRequest, + sal_False, + sal_True, + sal_True, + aRequest.HasAccount, + bAllowPersistentStoring); +} + +void SimpleAuthenticationRequest::initialize( + ucb::AuthenticationRequest aRequest, + const sal_Bool & bCanSetRealm, + const sal_Bool & bCanSetUserName, + const sal_Bool & bCanSetPassword, + const sal_Bool & bCanSetAccount, + const sal_Bool & bAllowPersistentStoring ) +{ setRequest( uno::makeAny( aRequest ) ); // Fill continuations... - uno::Sequence< ucb::RememberAuthentication > aRememberModes( 2 ); + uno::Sequence< ucb::RememberAuthentication > aRememberModes( bAllowPersistentStoring ? 3 : 2 ); aRememberModes[ 0 ] = ucb::RememberAuthentication_NO; aRememberModes[ 1 ] = ucb::RememberAuthentication_SESSION; + if (bAllowPersistentStoring) + aRememberModes[ 1 ] = ucb::RememberAuthentication_PERSISTENT; m_xAuthSupplier = new InteractionSupplyAuthentication( this, - sal_False, // bCanSetRealm - sal_True, // bCanSetUserName - sal_True, // bCanSetPassword - aRequest.HasAccount, // bCanSetAccount + bCanSetRealm, + bCanSetUserName, + bCanSetPassword, + bCanSetAccount, aRememberModes, // rRememberPasswordModes ucb::RememberAuthentication_SESSION, // eDefaultRememberPasswordMode aRememberModes, // rRememberAccountModes @@ -123,31 +176,51 @@ SimpleAuthenticationRequest::SimpleAuthenticationRequest( if ( aRequest.HasAccount ) aRequest.Account = rAccount; - setRequest( uno::makeAny( aRequest ) ); - - // Fill continuations... - uno::Sequence< ucb::RememberAuthentication > aRememberModes( 2 ); - aRememberModes[ 0 ] = ucb::RememberAuthentication_NO; - aRememberModes[ 1 ] = ucb::RememberAuthentication_SESSION; - - m_xAuthSupplier - = new InteractionSupplyAuthentication( - this, - eRealmType == ENTITY_MODIFY, // bCanSetRealm - eUserNameType == ENTITY_MODIFY, // bCanSetUserName - ePasswordType == ENTITY_MODIFY, // bCanSetPassword - eAccountType == ENTITY_MODIFY, // bCanSetAccount - aRememberModes, // rRememberPasswordModes - ucb::RememberAuthentication_SESSION, // eDefaultRememberPasswordMode - aRememberModes, // rRememberAccountModes - ucb::RememberAuthentication_SESSION // eDefaultRememberAccountMode - ); + initialize(aRequest, + eRealmType == ENTITY_MODIFY, + eUserNameType == ENTITY_MODIFY, + ePasswordType == ENTITY_MODIFY, + eAccountType == ENTITY_MODIFY, + sal_False); +} - uno::Sequence< - uno::Reference< task::XInteractionContinuation > > aContinuations( 3 ); - aContinuations[ 0 ] = new InteractionAbort( this ); - aContinuations[ 1 ] = new InteractionRetry( this ); - aContinuations[ 2 ] = m_xAuthSupplier.get(); +//========================================================================= +SimpleAuthenticationRequest::SimpleAuthenticationRequest( + const rtl::OUString & rServerName, + EntityType eRealmType, + const rtl::OUString & rRealm, + EntityType eUserNameType, + const rtl::OUString & rUserName, + EntityType ePasswordType, + const rtl::OUString & rPassword, + EntityType eAccountType, + const rtl::OUString & rAccount, + const sal_Bool & bAllowPersistentStoring ) +{ + // Fill request... + ucb::AuthenticationRequest aRequest; +// aRequest.Message = // OUString +// aRequest.Context = // XInterface + aRequest.Classification = task::InteractionClassification_ERROR; + aRequest.ServerName = rServerName; +// aRequest.Diagnostic = // OUString + aRequest.HasRealm = eRealmType != ENTITY_NA; + if ( aRequest.HasRealm ) + aRequest.Realm = rRealm; + aRequest.HasUserName = eUserNameType != ENTITY_NA; + if ( aRequest.HasUserName ) + aRequest.UserName = rUserName; + aRequest.HasPassword = ePasswordType != ENTITY_NA; + if ( aRequest.HasPassword ) + aRequest.Password = rPassword; + aRequest.HasAccount = eAccountType != ENTITY_NA; + if ( aRequest.HasAccount ) + aRequest.Account = rAccount; - setContinuations( aContinuations ); + initialize(aRequest, + eRealmType == ENTITY_MODIFY, + eUserNameType == ENTITY_MODIFY, + ePasswordType == ENTITY_MODIFY, + eAccountType == ENTITY_MODIFY, + bAllowPersistentStoring); } |