mvn package -DskipTests
cp `find -name "*.jar"` /var/lib/nuxeo/server/nxserver/bundles/
cp `find ~/.m2 -name "java-jwt-3.2.0.jar"` /var/lib/nuxeo/server/nxserver/bundles/
Create file /var/lib/nuxeo/server/nxserver/config/onlyoffice-config.xml
with
<?xml version="1.0"?>
<component name="fr.edu.lyon.onlyoffice.ConfigService.contrib">
<extension target="fr.edu.lyon.onlyoffice.ConfigService" point="config">
<onlyoffice>
<url>https://onlyoffice.univ.fr/</url>
<algorithm>onlyoffice</algorithm>
<prefix>onlyo</prefix>
</onlyoffice>
</extension>
</component>
and create file /var/lib/nuxeo/server/nxserver/config/onlyoffice-auth-config.xml
with
<component name="onlyoffice.auth.config">
<require>fr.esupportail.nuxeo.onlyoffice.jwt.auth</require>
<extension target="org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService"
point="specificChains">
<specificAuthenticationChain name="onlyoffice">
<urlPatterns>
<url>(.*)/site/onlyoffice/(download|template|callback).*</url>
</urlPatterns>
<replacementChain>
<plugin>ONLYOFFICE_JWT_AUTH</plugin>
</replacementChain>
</specificAuthenticationChain>
</extension>
</component>
The algorithm and the prefix are used to generate the JWT (passed as parameter sessionToken
)
Create file /var/lib/nuxeo/server/nxserver/config/onlyoffice-jwt-config.xml
with
<?xml version="1.0"?>
<component name="fr.edu.lyon.jwt.service.PayloadPluginService.JwtSign">
<extension target="fr.edu.lyon.jwt.service.PayloadPluginService" point="jwt-sign">
<algorithm id="onlyoffice" name="HS256" key="secretkey" />
</extension>
</component>
You have to restart nuxeo
Diagrams generated with : plantuml diagrammes.puml
- ajout boutons "Edition en ligne", "Co-édition en ligne" (ie "autosave"), "Prévisualisation", "Créer"
- avec des
link
construits par
- contenant .../site/onlyoffice/(edit|coedit|view|create)/<docId>
- cette url est gérée par
nuxeo-onlyoffice-core/src/main/java/fr/edu/lyon/nuxeo/onlyoffice/webengine/OnlyOfficeWebservice.java
- les actions correspondant aux boutons créent une page javascript avec le template
- avec comme
config
url
: .../site/onlyoffice/(download|template)/<docId>?sessionToken=<sessionToken>callbackUrl
: .../site/onlyoffice/(callbackCreate|callbackEdit|callbackCoEdit)/<docId>- généré par nuxeo-onlyoffice-core/src/main/java/fr/edu/lyon/nuxeo/onlyoffice/service/OnlyofficeConfig.java