Ce document en français.
Regarding installation, configuration and use, please consult the documentation.
Writing of a new XWizard interface in order to replace the Wizard service which became defective with version 6.4.x and 7.x of LibreOffice (see bug 132110).
This new interface also fixes bug 132661 and bug 132666 and allows access to versions 6.4.x and 7.x of LibreOffice…
In addition this new XWizard adds new functionality such as:
Fixed an issue with tokens without expiration (as used by Dropbox) on testing their validity…
Many other fix…
Rewrite of the OAuth2 wizard trying to follow the MVA model as best as possible. This wizard is made up of 5 pages inheriting from the UNO XWizardPage interface:
Rewrite of the three UNO services provided by the OAuth2OOo extension in three separate files:
Rewrite of the options dialog accessible by Tools -> Options -> Internet -> Protocol OAuth2. This dialog is composed of two windows:
Rewrite a single data model: OAuth2Model managing wizard, services and options dialog.
Google loopback flow error has been fixed. See Issue #10
Use for Dropbox their new OAuth2 API with expirable tokens.
Many other fix…
Porting Python API Requests to LibreOffice / OpenOffice UNO API. Two UNO interfaces are accessible:
The XRequestParameter interface supports sync token handling as well as HTTP request paging, as used in the HTTP Rest APIs
Uploading and downloading files is possible thanks to the methods or properties:
XOAuth2Service.download()
allowing resumable file download.XOAuth2Service.upload()
allowing resumable file upload.XOAuth2Service.getInputStream()
to get an input stream.XRequestParameter.DataSink
to set an input stream.XRequestResponse.getInputStream()
to get an input stream.Porting Java API javax.json to LibreOffice / OpenOffice UNO API as defined in idl files: com.sun.star.json.*
getJsonBuilder()
interface of XRequestParameter.getJson()
interface of XRequestResponse.This makes HTTP requests using JSON easily usable in the BASIC language of LibreOffice.
Writing of 15 functions in Calc AddIns as described in the following files:
com.sun.star.auth.Oauth2Plugin
providing these new interfaces.These 4 new files give access to 15 new Calc formulas which are:
GETHTTPBOBY(URL,METHOD,ENCODING,PARAMETERS)
PARSEHTML(DATA,PATH,BASEURL)
PARSEXML(DATA,PATH,BASEURL)
PARSEJSON(DATA,PATH)
JAVASCRIPT2XML(DATA,PATH)
XML2JSON(DATA,PATH)
JAVASCRIPT2JSON(DATA,PATH)
DUBLINCORE2JSON(DATA,BASEURL)
JSONLD2JSON(DATA,BASEURL)
MICRODATA2JSON(DATA,BASEURL)
MICROFORMAT2JSON(DATA,BASEURL)
OPENGRAPH2JSON(DATA,BASEURL)
RDFA2JSON(DATA,BASEURL)
FLATTENJSON(DATA,TYPENAME,PATH,SEPARATOR)
SPLITJSON(DATA,TYPENAME,PATH,SEPARATOR)
End of support for Python 2.x and therefore for OpenOffice.
Integration of Selenium version 4.10 in the extension in order to make LibreOffice able to control a browser via Calc formulas inserted in a spreadsheet.
Use of webdriver_manager version 3.8.6 to automate the installation of the browser’s WebDriver.
Creation of 5 Calc formulas allowing the piloting of the browser:
BROWSEROPEN(BROWSER,PATH,INIT,OPTIONS)
BROWSERCLICK(SESSION,BY,PATH,URL,INIT,WAIT)
BROWSERFIELD(SESSION,BY,PATH,VALUE,URL,INIT,WAIT)
BROWSERFORM(SESSION,FORM,URL,INIT,WAIT)
BROWSERCONTENT(SESSION,URL,ENCODING)
Creation of a Calc formula allowing HTTP Basic Auth authentication for HTTP requests:
HTTPAUTH(NAME,PASSWORD)
Calc formula GETHTTPBOBY
has been renamed to HTTPCONTENT
.
Modification of the idl files: XRequestParameter.idl and XRequestResponse.idl and the underlying python implementations: requestparameter.py and requestresponse.py in order to make it possible POST requests with application/x-www-form-urlencoded encoding. See issue #13.
3 macros in BASIC: ChatGPTRequest
, HTTPGetRequest
and HTTPPostRequest
are available in: Tools -> Macros -> Run Macros… -> My Macros -> OAuth2OOo. Be careful, these macros will not work if no document is open (I don’t know why?)…
From now on, with each push, a workflow perform a scan on the code with Fluid Attacks. This has been implemented to follow the Cloud Application Security Assessment (CASA) and meet the requirements for revalidation of the OAuth2OOo extension with Google.
For the same reasons, the Data Protection Policy has been modified in order to specify the Nature and scope rights over your data.
create()
without parameter, returns an instance of the service.createWithOAuth2([in] string sUrl, [in] string sUser)
with an Url and the user’s address, returns an instance of the service with the OAuth2 protocol.GoogleAPIRequest
and GraphAPIRequest
allow you to make HTTP requests on the Google Contact and Microsoft Graph APIs.isAuthorized()
to the XOAuth2Service interface supported by the OAuth2Service service. This method allows you to launch the OAuth2 configuration Wizard if the user is not authorized.sudo -i pip3 install requirements.txt
Headers
property in the implementation of the UNO interface XRequestResponse allowing to obtain the headers of an HTTP response.lxml
, ijson
, cffi
and charset-normalizer
packages.oauth20
. This should also resolve issue #15.Updating all these Python packages should make it possible to use Python 3.8, 3.9, 3.10, 3.11 and 3.12 under ManyLinux x86_64 architecture.
For win32 and win_amd64 architectures, only Python version 3.8 is supported. This means that since Python is embedded into LibreOffice for these architectures, only LibreOffice versions 7.x and 24.x are supported.
If your architecture is not yet supported by OAuth2OOo (Mac OSX, arm…), I advise you to open an issue so that I can add the missing binaries.
fromJson()
method to the XRequestParameter interface to make it easier to execute an HTTP request from parameters coming from LibreOffice configuration files (ie: xcu/xcs XML files).redirect_uri
) in https mode as required by some third party APIs, using Github’s SSL certificate and JavaScript, see the file OAuth2Redirect.md.isRegisteredUrl
to know if a URL is registered in the OAuth2 configuration.getTokenWithParameters
to obtain an OAuth2 token in the format given by the parameters.Add new language for internationalization…
Anything welcome…