Converge on SvtSecurityOptions::isTrustedLocation
Change-Id: Ibcf4b7d9d11295c7679637a37d41dc2960e04f8f
This commit is contained in:
@@ -188,6 +188,11 @@ class UNOTOOLS_DLLPUBLIC SAL_WARN_UNUSED SvtSecurityOptions : public utl::detail
|
|||||||
bool isSecureMacroUri(OUString const & uri, OUString const & referer)
|
bool isSecureMacroUri(OUString const & uri, OUString const & referer)
|
||||||
const;
|
const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Check whether the given uri is a trusted location.
|
||||||
|
*/
|
||||||
|
bool isTrustedLocationUri(OUString const & uri) const;
|
||||||
|
|
||||||
::com::sun::star::uno::Sequence< Certificate > GetTrustedAuthors ( ) const ;
|
::com::sun::star::uno::Sequence< Certificate > GetTrustedAuthors ( ) const ;
|
||||||
void SetTrustedAuthors ( const ::com::sun::star::uno::Sequence< Certificate >& rAuthors ) ;
|
void SetTrustedAuthors ( const ::com::sun::star::uno::Sequence< Certificate >& rAuthors ) ;
|
||||||
|
|
||||||
|
@@ -21,6 +21,7 @@
|
|||||||
#include <unotools/securityoptions.hxx>
|
#include <unotools/securityoptions.hxx>
|
||||||
#include <unotools/configmgr.hxx>
|
#include <unotools/configmgr.hxx>
|
||||||
#include <unotools/configitem.hxx>
|
#include <unotools/configitem.hxx>
|
||||||
|
#include <unotools/ucbhelper.hxx>
|
||||||
#include <tools/debug.hxx>
|
#include <tools/debug.hxx>
|
||||||
#include <com/sun/star/uno/Any.hxx>
|
#include <com/sun/star/uno/Any.hxx>
|
||||||
#include <com/sun/star/uno/Sequence.hxx>
|
#include <com/sun/star/uno/Sequence.hxx>
|
||||||
@@ -1041,29 +1042,27 @@ bool SvtSecurityOptions::isSecureMacroUri(
|
|||||||
}
|
}
|
||||||
// fall through
|
// fall through
|
||||||
case INET_PROT_SLOT:
|
case INET_PROT_SLOT:
|
||||||
if (referer.equalsIgnoreAsciiCase("private:user")) {
|
return referer.equalsIgnoreAsciiCase("private:user")
|
||||||
return true;
|
|| isTrustedLocationUri(referer);
|
||||||
}
|
|
||||||
{
|
|
||||||
MutexGuard g(GetInitMutex());
|
|
||||||
for (sal_Int32 i = 0;
|
|
||||||
i != m_pDataContainer->m_seqSecureURLs.getLength(); ++i)
|
|
||||||
{
|
|
||||||
OUString pref(m_pDataContainer->m_seqSecureURLs[i]);
|
|
||||||
pref.endsWith("/", &pref);
|
|
||||||
if (referer.equalsIgnoreAsciiCase(pref)
|
|
||||||
|| referer.startsWithIgnoreAsciiCase(pref + "/"))
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
default:
|
default:
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool SvtSecurityOptions::isTrustedLocationUri(OUString const & uri) const {
|
||||||
|
MutexGuard g(GetInitMutex());
|
||||||
|
for (sal_Int32 i = 0; i != m_pDataContainer->m_seqSecureURLs.getLength();
|
||||||
|
++i)
|
||||||
|
{
|
||||||
|
if (UCBContentHelper::IsSubPath(
|
||||||
|
m_pDataContainer->m_seqSecureURLs[i], uri))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
sal_Int32 SvtSecurityOptions::GetMacroSecurityLevel() const
|
sal_Int32 SvtSecurityOptions::GetMacroSecurityLevel() const
|
||||||
{
|
{
|
||||||
MutexGuard aGuard( GetInitMutex() );
|
MutexGuard aGuard( GetInitMutex() );
|
||||||
|
@@ -36,12 +36,10 @@
|
|||||||
#include <com/sun/star/ucb/XCommandEnvironment.hpp>
|
#include <com/sun/star/ucb/XCommandEnvironment.hpp>
|
||||||
#include <com/sun/star/ucb/XCommandProcessor.hpp>
|
#include <com/sun/star/ucb/XCommandProcessor.hpp>
|
||||||
#include <com/sun/star/ucb/Command.hpp>
|
#include <com/sun/star/ucb/Command.hpp>
|
||||||
#include <tools/urlobj.hxx>
|
|
||||||
#include <vcl/msgbox.hxx>
|
#include <vcl/msgbox.hxx>
|
||||||
#include <unotools/securityoptions.hxx>
|
#include <unotools/securityoptions.hxx>
|
||||||
#include <com/sun/star/security/CertificateValidity.hpp>
|
#include <com/sun/star/security/CertificateValidity.hpp>
|
||||||
#include <com/sun/star/security/SerialNumberAdapter.hpp>
|
#include <com/sun/star/security/SerialNumberAdapter.hpp>
|
||||||
#include <unotools/ucbhelper.hxx>
|
|
||||||
#include "comphelper/documentconstants.hxx"
|
#include "comphelper/documentconstants.hxx"
|
||||||
|
|
||||||
#include "com/sun/star/lang/IllegalArgumentException.hpp"
|
#include "com/sun/star/lang/IllegalArgumentException.hpp"
|
||||||
@@ -439,17 +437,7 @@ Reference< css::security::XCertificate > DocumentDigitalSignatures::chooseCertif
|
|||||||
|
|
||||||
::sal_Bool DocumentDigitalSignatures::isLocationTrusted( const OUString& Location ) throw (RuntimeException)
|
::sal_Bool DocumentDigitalSignatures::isLocationTrusted( const OUString& Location ) throw (RuntimeException)
|
||||||
{
|
{
|
||||||
sal_Bool bFound = sal_False;
|
return SvtSecurityOptions().isTrustedLocationUri(Location);
|
||||||
INetURLObject aLocObj( Location );
|
|
||||||
INetURLObject aLocObjLowCase( Location.toAsciiLowerCase() ); // will be used for case insensitive comparing
|
|
||||||
|
|
||||||
Sequence< OUString > aSecURLs = SvtSecurityOptions().GetSecureURLs();
|
|
||||||
const OUString* pSecURLs = aSecURLs.getConstArray();
|
|
||||||
const OUString* pSecURLsEnd = pSecURLs + aSecURLs.getLength();
|
|
||||||
for ( ; pSecURLs != pSecURLsEnd && !bFound; ++pSecURLs )
|
|
||||||
bFound = ::utl::UCBContentHelper::IsSubPath( *pSecURLs, Location );
|
|
||||||
|
|
||||||
return bFound;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DocumentDigitalSignatures::addAuthorToTrustedSources(
|
void DocumentDigitalSignatures::addAuthorToTrustedSources(
|
||||||
|
Reference in New Issue
Block a user