Kaydet (Commit) 2f73ff06 authored tarafından Kurt Zenker's avatar Kurt Zenker

INTEGRATION: CWS updatefeed (1.21.22); FILE MERGED

2006/12/04 16:54:47 kso 1.21.22.2: #i72055# - Added support for XWebDAVCommandEnvironment.
2006/11/29 13:03:02 kso 1.21.22.1: #i72055# - cleanup.
üst 87a0e7be
......@@ -4,9 +4,9 @@
*
* $RCSfile: DAVResourceAccess.cxx,v $
*
* $Revision: 1.21 $
* $Revision: 1.22 $
*
* last change: $Author: obo $ $Date: 2006-09-17 14:04:27 $
* last change: $Author: kz $ $Date: 2006-12-13 15:04:02 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
......@@ -36,30 +36,19 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_ucb.hxx"
#ifndef _OSL_DIAGNOSE_H_
#include <osl/diagnose.h>
#endif
#include "osl/diagnose.h"
#ifndef _COM_SUN_STAR_TASK_XINTERACTIONABORT_HPP_
#include <com/sun/star/task/XInteractionAbort.hpp>
#endif
#include "com/sun/star/task/XInteractionAbort.hpp"
#include "com/sun/star/ucb/XWebDAVCommandEnvironment.hpp"
#ifndef _UCBHELPER_SIMPLEAUTHENTICATIONREQUEST_HXX
#include <ucbhelper/simpleauthenticationrequest.hxx>
#endif
#include "ucbhelper/simpleauthenticationrequest.hxx"
#ifndef _DAVAUTHLISTENERIMPL_HXX_
#include "DAVAuthListenerImpl.hxx"
#endif
#ifndef _DAVRESOURCEACCESS_HXX_
#include "DAVResourceAccess.hxx"
#endif
using namespace webdav_ucp;
using namespace com::sun::star;
//=========================================================================
//=========================================================================
//
......@@ -173,9 +162,9 @@ DAVResourceAccess & DAVResourceAccess::operator=(
}
//=========================================================================
void DAVResourceAccess::OPTIONS( DAVCapabilities & rCapabilities,
const uno::Reference<
ucb::XCommandEnvironment > & xEnv )
void DAVResourceAccess::OPTIONS(
DAVCapabilities & rCapabilities,
const uno::Reference< ucb::XCommandEnvironment > & xEnv )
throw( DAVException )
{
initialize();
......@@ -186,11 +175,19 @@ void DAVResourceAccess::OPTIONS( DAVCapabilities & rCapabilities,
bRetry = sal_False;
try
{
DAVRequestHeaders aHeaders;
getUserRequestHeaders( xEnv,
getRequestURI(),
rtl::OUString::createFromAscii(
"OPTIONS" ),
aHeaders );
m_xSession->OPTIONS( getRequestURI(),
rCapabilities,
DAVRequestEnvironment(
getRequestURI(),
new DAVAuthListener_Impl( xEnv ) ) );
new DAVAuthListener_Impl( xEnv ),
aHeaders) );
}
catch ( DAVException & e )
{
......@@ -203,11 +200,11 @@ void DAVResourceAccess::OPTIONS( DAVCapabilities & rCapabilities,
}
//=========================================================================
void DAVResourceAccess::PROPFIND( const Depth nDepth,
void DAVResourceAccess::PROPFIND(
const Depth nDepth,
const std::vector< rtl::OUString > & rPropertyNames,
std::vector< DAVResource > & rResources,
const uno::Reference<
ucb::XCommandEnvironment > & xEnv )
const uno::Reference< ucb::XCommandEnvironment > & xEnv )
throw( DAVException )
{
initialize();
......@@ -218,13 +215,21 @@ void DAVResourceAccess::PROPFIND( const Depth nDepth,
bRetry = sal_False;
try
{
DAVRequestHeaders aHeaders;
getUserRequestHeaders( xEnv,
getRequestURI(),
rtl::OUString::createFromAscii(
"PROPFIND" ),
aHeaders );
m_xSession->PROPFIND( getRequestURI(),
nDepth,
rPropertyNames,
rResources,
DAVRequestEnvironment(
getRequestURI(),
new DAVAuthListener_Impl( xEnv ) ) );
new DAVAuthListener_Impl( xEnv ),
aHeaders ) );
}
catch ( DAVException & e )
{
......@@ -237,10 +242,10 @@ void DAVResourceAccess::PROPFIND( const Depth nDepth,
}
//=========================================================================
void DAVResourceAccess::PROPFIND( const Depth nDepth,
void DAVResourceAccess::PROPFIND(
const Depth nDepth,
std::vector< DAVResourceInfo > & rResInfo,
const uno::Reference<
ucb::XCommandEnvironment > & xEnv )
const uno::Reference< ucb::XCommandEnvironment > & xEnv )
throw( DAVException )
{
initialize();
......@@ -251,12 +256,20 @@ void DAVResourceAccess::PROPFIND( const Depth nDepth,
bRetry = sal_False;
try
{
DAVRequestHeaders aHeaders;
getUserRequestHeaders( xEnv,
getRequestURI(),
rtl::OUString::createFromAscii(
"PROPFIND" ),
aHeaders );
m_xSession->PROPFIND( getRequestURI(),
nDepth,
rResInfo,
DAVRequestEnvironment(
getRequestURI(),
new DAVAuthListener_Impl( xEnv ) ) ) ;
new DAVAuthListener_Impl( xEnv ),
aHeaders ) ) ;
}
catch ( DAVException & e )
{
......@@ -269,9 +282,9 @@ void DAVResourceAccess::PROPFIND( const Depth nDepth,
}
//=========================================================================
void DAVResourceAccess::PROPPATCH( const std::vector< ProppatchValue >& rValues,
const uno::Reference<
ucb::XCommandEnvironment >& xEnv )
void DAVResourceAccess::PROPPATCH(
const std::vector< ProppatchValue >& rValues,
const uno::Reference< ucb::XCommandEnvironment >& xEnv )
throw( DAVException )
{
initialize();
......@@ -282,11 +295,19 @@ void DAVResourceAccess::PROPPATCH( const std::vector< ProppatchValue >& rValues,
bRetry = sal_False;
try
{
DAVRequestHeaders aHeaders;
getUserRequestHeaders( xEnv,
getRequestURI(),
rtl::OUString::createFromAscii(
"PROPPATCH" ),
aHeaders );
m_xSession->PROPPATCH( getRequestURI(),
rValues,
DAVRequestEnvironment(
getRequestURI(),
new DAVAuthListener_Impl( xEnv ) ) );
new DAVAuthListener_Impl( xEnv ),
aHeaders ) );
}
catch ( DAVException & e )
{
......@@ -299,10 +320,10 @@ void DAVResourceAccess::PROPPATCH( const std::vector< ProppatchValue >& rValues,
}
//=========================================================================
void DAVResourceAccess::HEAD( const std::vector< rtl::OUString > & rHeaderNames,
void DAVResourceAccess::HEAD(
const std::vector< rtl::OUString > & rHeaderNames,
DAVResource & rResource,
const uno::Reference<
ucb::XCommandEnvironment >& xEnv )
const uno::Reference< ucb::XCommandEnvironment >& xEnv )
throw( DAVException )
{
initialize();
......@@ -313,12 +334,20 @@ void DAVResourceAccess::HEAD( const std::vector< rtl::OUString > & rHeaderNames,
bRetry = sal_False;
try
{
DAVRequestHeaders aHeaders;
getUserRequestHeaders( xEnv,
getRequestURI(),
rtl::OUString::createFromAscii( "HEAD" ),
aHeaders );
m_xSession->HEAD( getRequestURI(),
rHeaderNames,
rResource,
DAVRequestEnvironment(
getRequestURI(),
new DAVAuthListener_Impl( xEnv ) ) );
new DAVAuthListener_Impl( xEnv ),
aHeaders ) );
}
catch ( DAVException & e )
{
......@@ -344,10 +373,17 @@ uno::Reference< io::XInputStream > DAVResourceAccess::GET(
bRetry = sal_False;
try
{
DAVRequestHeaders aHeaders;
getUserRequestHeaders( xEnv,
getRequestURI(),
rtl::OUString::createFromAscii( "GET" ),
aHeaders );
xStream = m_xSession->GET( getRequestURI(),
DAVRequestEnvironment(
getRequestURI(),
new DAVAuthListener_Impl( xEnv ) ) );
new DAVAuthListener_Impl( xEnv ),
aHeaders ) );
}
catch ( DAVException & e )
{
......@@ -362,9 +398,9 @@ uno::Reference< io::XInputStream > DAVResourceAccess::GET(
}
//=========================================================================
void DAVResourceAccess::GET( uno::Reference< io::XOutputStream > & rStream,
const uno::Reference<
ucb::XCommandEnvironment > & xEnv )
void DAVResourceAccess::GET(
uno::Reference< io::XOutputStream > & rStream,
const uno::Reference< ucb::XCommandEnvironment > & xEnv )
throw( DAVException )
{
initialize();
......@@ -375,11 +411,18 @@ void DAVResourceAccess::GET( uno::Reference< io::XOutputStream > & rStream,
bRetry = sal_False;
try
{
DAVRequestHeaders aHeaders;
getUserRequestHeaders( xEnv,
getRequestURI(),
rtl::OUString::createFromAscii( "GET" ),
aHeaders );
m_xSession->GET( getRequestURI(),
rStream,
DAVRequestEnvironment(
getRequestURI(),
new DAVAuthListener_Impl( xEnv ) ) );
new DAVAuthListener_Impl( xEnv ),
aHeaders ) );
}
catch ( DAVException & e )
{
......@@ -407,12 +450,19 @@ uno::Reference< io::XInputStream > DAVResourceAccess::GET(
bRetry = sal_False;
try
{
DAVRequestHeaders aHeaders;
getUserRequestHeaders( xEnv,
getRequestURI(),
rtl::OUString::createFromAscii( "GET" ),
aHeaders );
xStream = m_xSession->GET( getRequestURI(),
rHeaderNames,
rResource,
DAVRequestEnvironment(
getRequestURI(),
new DAVAuthListener_Impl( xEnv ) ) );
new DAVAuthListener_Impl( xEnv ),
aHeaders ) );
}
catch ( DAVException & e )
{
......@@ -442,13 +492,20 @@ void DAVResourceAccess::GET(
bRetry = sal_False;
try
{
DAVRequestHeaders aHeaders;
getUserRequestHeaders( xEnv,
getRequestURI(),
rtl::OUString::createFromAscii( "GET" ),
aHeaders );
m_xSession->GET( getRequestURI(),
rStream,
rHeaderNames,
rResource,
DAVRequestEnvironment(
getRequestURI(),
new DAVAuthListener_Impl( xEnv ) ) );
new DAVAuthListener_Impl( xEnv ),
aHeaders ) );
}
catch ( DAVException & e )
{
......@@ -461,9 +518,9 @@ void DAVResourceAccess::GET(
}
//=========================================================================
void DAVResourceAccess::PUT( const uno::Reference< io::XInputStream > & rStream,
const uno::Reference<
ucb::XCommandEnvironment > & xEnv )
void DAVResourceAccess::PUT(
const uno::Reference< io::XInputStream > & rStream,
const uno::Reference< ucb::XCommandEnvironment > & xEnv )
throw( DAVException )
{
initialize();
......@@ -474,11 +531,18 @@ void DAVResourceAccess::PUT( const uno::Reference< io::XInputStream > & rStream,
bRetry = sal_False;
try
{
DAVRequestHeaders aHeaders;
getUserRequestHeaders( xEnv,
getRequestURI(),
rtl::OUString::createFromAscii( "PUT" ),
aHeaders );
m_xSession->PUT( getRequestURI(),
rStream,
DAVRequestEnvironment(
getRequestURI(),
new DAVAuthListener_Impl( xEnv ) ) );
new DAVAuthListener_Impl( xEnv ),
aHeaders ) );
}
catch ( DAVException & e )
{
......@@ -491,7 +555,8 @@ void DAVResourceAccess::PUT( const uno::Reference< io::XInputStream > & rStream,
}
//=========================================================================
uno::Reference< io::XInputStream > DAVResourceAccess::POST(
uno::Reference<
io::XInputStream > DAVResourceAccess::POST(
const rtl::OUString & rContentType,
const rtl::OUString & rReferer,
const uno::Reference< io::XInputStream > & rInputStream,
......@@ -507,13 +572,20 @@ uno::Reference< io::XInputStream > DAVResourceAccess::POST(
bRetry = sal_False;
try
{
DAVRequestHeaders aHeaders;
getUserRequestHeaders( xEnv,
getRequestURI(),
rtl::OUString::createFromAscii( "POST" ),
aHeaders );
xStream = m_xSession->POST( getRequestURI(),
rContentType,
rReferer,
rInputStream,
DAVRequestEnvironment(
getRequestURI(),
new DAVAuthListener_Impl( xEnv ) ) );
new DAVAuthListener_Impl( xEnv ),
aHeaders ) );
}
catch ( DAVException & e )
{
......@@ -545,6 +617,12 @@ void DAVResourceAccess::POST(
bRetry = sal_False;
try
{
DAVRequestHeaders aHeaders;
getUserRequestHeaders( xEnv,
getRequestURI(),
rtl::OUString::createFromAscii( "POST" ),
aHeaders );
m_xSession->POST( getRequestURI(),
rContentType,
rReferer,
......@@ -552,7 +630,8 @@ void DAVResourceAccess::POST(
rOutputStream,
DAVRequestEnvironment(
getRequestURI(),
new DAVAuthListener_Impl( xEnv ) ) );
new DAVAuthListener_Impl( xEnv ),
aHeaders ) );
}
catch ( DAVException & e )
{
......@@ -565,8 +644,8 @@ void DAVResourceAccess::POST(
}
//=========================================================================
void DAVResourceAccess::MKCOL( const uno::Reference<
ucb::XCommandEnvironment > & xEnv )
void DAVResourceAccess::MKCOL(
const uno::Reference< ucb::XCommandEnvironment > & xEnv )
throw( DAVException )
{
initialize();
......@@ -577,10 +656,17 @@ void DAVResourceAccess::MKCOL( const uno::Reference<
bRetry = sal_False;
try
{
DAVRequestHeaders aHeaders;
getUserRequestHeaders( xEnv,
getRequestURI(),
rtl::OUString::createFromAscii( "MKCOL" ),
aHeaders );
m_xSession->MKCOL( getRequestURI(),
DAVRequestEnvironment(
getRequestURI(),
new DAVAuthListener_Impl( xEnv ) ) );
new DAVAuthListener_Impl( xEnv ),
aHeaders ) );
}
catch ( DAVException & e )
{
......@@ -593,11 +679,11 @@ void DAVResourceAccess::MKCOL( const uno::Reference<
}
//=========================================================================
void DAVResourceAccess::COPY( const ::rtl::OUString & rSourcePath,
void DAVResourceAccess::COPY(
const ::rtl::OUString & rSourcePath,
const ::rtl::OUString & rDestinationURI,
sal_Bool bOverwrite,
const uno::Reference<
ucb::XCommandEnvironment > & xEnv )
const uno::Reference< ucb::XCommandEnvironment > & xEnv )
throw( DAVException )
{
initialize();
......@@ -608,11 +694,18 @@ void DAVResourceAccess::COPY( const ::rtl::OUString & rSourcePath,
bRetry = sal_False;
try
{
DAVRequestHeaders aHeaders;
getUserRequestHeaders( xEnv,
getRequestURI(),
rtl::OUString::createFromAscii( "COPY" ),
aHeaders );
m_xSession->COPY( rSourcePath,
rDestinationURI,
DAVRequestEnvironment(
getRequestURI(),
new DAVAuthListener_Impl( xEnv ) ),
new DAVAuthListener_Impl( xEnv ),
aHeaders ),
bOverwrite );
}
catch ( DAVException & e )
......@@ -626,11 +719,11 @@ void DAVResourceAccess::COPY( const ::rtl::OUString & rSourcePath,
}
//=========================================================================
void DAVResourceAccess::MOVE( const ::rtl::OUString & rSourcePath,
void DAVResourceAccess::MOVE(
const ::rtl::OUString & rSourcePath,
const ::rtl::OUString & rDestinationURI,
sal_Bool bOverwrite,
const uno::Reference<
ucb::XCommandEnvironment > & xEnv )
const uno::Reference< ucb::XCommandEnvironment > & xEnv )
throw( DAVException )
{
initialize();
......@@ -641,11 +734,18 @@ void DAVResourceAccess::MOVE( const ::rtl::OUString & rSourcePath,
bRetry = sal_False;
try
{
DAVRequestHeaders aHeaders;
getUserRequestHeaders( xEnv,
getRequestURI(),
rtl::OUString::createFromAscii( "MOVE" ),
aHeaders );
m_xSession->MOVE( rSourcePath,
rDestinationURI,
DAVRequestEnvironment(
getRequestURI(),
new DAVAuthListener_Impl( xEnv ) ),
new DAVAuthListener_Impl( xEnv ),
aHeaders ),
bOverwrite );
}
catch ( DAVException & e )
......@@ -659,7 +759,8 @@ void DAVResourceAccess::MOVE( const ::rtl::OUString & rSourcePath,
}
//=========================================================================
void DAVResourceAccess::DESTROY( const uno::Reference<
void DAVResourceAccess::DESTROY(
const uno::Reference<
ucb::XCommandEnvironment > & xEnv )
throw( DAVException )
{
......@@ -671,10 +772,18 @@ void DAVResourceAccess::DESTROY( const uno::Reference<
bRetry = sal_False;
try
{
DAVRequestHeaders aHeaders;
getUserRequestHeaders( xEnv,
getRequestURI(),
rtl::OUString::createFromAscii(
"DESTROY" ),
aHeaders );
m_xSession->DESTROY( getRequestURI(),
DAVRequestEnvironment(
getRequestURI(),
new DAVAuthListener_Impl( xEnv ) ) );
new DAVAuthListener_Impl( xEnv ),
aHeaders ) );
}
catch ( DAVException & e )
{
......@@ -687,9 +796,9 @@ void DAVResourceAccess::DESTROY( const uno::Reference<
}
//=========================================================================
void DAVResourceAccess::LOCK ( const ucb::Lock & /*rLock*/,
const uno::Reference<
ucb::XCommandEnvironment > & /*xEnv*/ )
void DAVResourceAccess::LOCK (
const ucb::Lock & /*rLock*/,
const uno::Reference< ucb::XCommandEnvironment > & /*xEnv*/ )
throw( DAVException )
{
// initialize();
......@@ -697,9 +806,9 @@ void DAVResourceAccess::LOCK ( const ucb::Lock & /*rLock*/,
}
//=========================================================================
void DAVResourceAccess::UNLOCK ( const ucb::Lock & /*rLock*/,
const uno::Reference<
ucb::XCommandEnvironment > & /*xEnv*/ )
void DAVResourceAccess::UNLOCK (
const ucb::Lock & /*rLock*/,
const uno::Reference< ucb::XCommandEnvironment > & /*xEnv*/ )
throw( DAVException )
{
// initialize();
......@@ -764,6 +873,37 @@ const rtl::OUString & DAVResourceAccess::getRequestURI() const
return m_aPath;
}
//=========================================================================
// static
void DAVResourceAccess::getUserRequestHeaders(
const uno::Reference< ucb::XCommandEnvironment > & xEnv,
const rtl::OUString & rURI,
const rtl::OUString & rMethod,
DAVRequestHeaders & rRequestHeaders )
{
if ( xEnv.is() )
{
uno::Reference< ucb::XWebDAVCommandEnvironment > xDAVEnv(
xEnv, uno::UNO_QUERY );
if ( xDAVEnv.is() )
{
uno::Sequence< beans::NamedValue > aRequestHeaders
= xDAVEnv->getUserRequestHeaders( rURI, rMethod );
for ( sal_Int32 n = 0; n < aRequestHeaders.getLength(); ++n )
{
rtl::OUString aValue;
OSL_ENSURE( aRequestHeaders[ n ].Value >>= aValue,
"DAVResourceAccess::getUserRequestHeaders :"
"Value is not a string! Ignoring..." );
rRequestHeaders.push_back( DAVRequestHeader(
aRequestHeaders[ n ].Name,
aValue ) );
}
}
}
}
//=========================================================================
sal_Bool DAVResourceAccess::detectRedirectCycle(
const rtl::OUString& rRedirectURL )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment