Bonjour,
Après plusieurs utilisation successive et massive d'un processus utilisant des connecteurs CMIS, alors que cela fonctionnait normalement, subitement, une exception est levée par ces connecteurs.
Cf. log:
----------------------------------
19-Oct-2021 14:12:30.484 SEVERE [ConnectorExecutor-91] org.bonitasoft.engine.log.technical.TechnicalLoggerSLF4JImpl.log THREAD_ID=3577 | HOSTNAME=my_hostname | TENANT_ID=101 | org.bonitasoft.engine.commons.exceptions.SBonitaRuntimeException : "java.lang.IllegalArgumentException: Authentication provider does not implement AuthenticationProvider!"
org.bonitasoft.engine.commons.exceptions.SBonitaRuntimeException: java.lang.IllegalArgumentException: Authentication provider does not implement AuthenticationProvider!
at org.bonitasoft.engine.connector.impl.ConnectorExecutorImpl.lambda$execute$0(ConnectorExecutorImpl.java:156)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.IllegalArgumentException: Authentication provider does not implement AuthenticationProvider!
at org.apache.chemistry.opencmis.client.bindings.impl.CmisBindingImpl.<init>(CmisBindingImpl.java:104)
at org.apache.chemistry.opencmis.client.bindings.CmisBindingFactory.createCmisAtomPubBinding(CmisBindingFactory.java:171)
at org.apache.chemistry.opencmis.client.runtime.CmisBindingHelper.createAtomPubBinding(CmisBindingHelper.java:103)
at org.apache.chemistry.opencmis.client.runtime.CmisBindingHelper.createBinding(CmisBindingHelper.java:61)
at org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl.getRepositories(SessionFactoryImpl.java:118)
at org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl.getRepositories(SessionFactoryImpl.java:107)
at org.bonitasoft.connectors.cmis.cmisclient.AbstractCmisClient.getRepositories(AbstractCmisClient.java:89)
at org.bonitasoft.connectors.cmis.cmisclient.AbstractCmisClient.getRepositoryByName(AbstractCmisClient.java:234)
at org.bonitasoft.connectors.cmis.cmisclient.AbstractCmisClient.connect(AbstractCmisClient.java:76)
at org.bonitasoft.connectors.cmis.AbstractCMISConnector.connect(AbstractCMISConnector.java:84)
at org.bonitasoft.engine.core.connector.impl.SConnectorAdapter.connect(SConnectorAdapter.java:83)
at org.bonitasoft.engine.connector.impl.ConnectorExecutorImpl$ExecuteConnectorCallable.call(ConnectorExecutorImpl.java:253)
at org.bonitasoft.engine.connector.impl.ConnectorExecutorImpl$ExecuteConnectorCallable.call(ConnectorExecutorImpl.java:213)
at com.bonitasoft.engine.connector.impl.ConnectorExecutorTimedOut$1.call(ConnectorExecutorTimedOut.java:78)
at com.bonitasoft.engine.connector.impl.ConnectorExecutorTimedOut$1.call(ConnectorExecutorTimedOut.java:73)
at org.bonitasoft.engine.connector.impl.ConnectorExecutorImpl.lambda$wrapForStats$1(ConnectorExecutorImpl.java:165)
at org.bonitasoft.engine.connector.impl.ConnectorExecutorImpl.lambda$execute$0(ConnectorExecutorImpl.java:153)
... 4 more
----------------------------------
Pour quelles raisons possibles cette exception qui semble relative à une authentification apparaît-elle subitement ?
Nos serveurs Alfresco sont sur AWS. Sur cette architecture, pour des raisons de sécurité, il a été mis en place un WAF (Web Application Firewall).
Nous avons demandé à l'équipe en charge des serveurs Alfresco et du WAF, s'il y avait eu blocage des appels en provenance de Bonita et la réponse est que ce n'est pas le cas.
Après le redémarrage de Bonita, le processus et ses connecteurs s'est remis a fonctionner normalement.
Comment expliquer que ce blocage soit levé à partir du moment où Bonita est redémarré ?
En effet, les tests que l'on a fait montrent que tout de suite après le redémarrage, le processus remarche.
Comment éviter que le processus plante si jamais il y avait des problèmes de ce type?
J'utilise la version: Bonita-Subscription-7.10.1.
J'ai aussi vérifier les classloaders et j'ai bien une seule version des lib dans le claosslader de mon process, comme spécifié dans la doc: https://documentation.bonitasoft.com/bonita/2021.2/version-update/migrate-from-an-earlier-version-of-bonita#_cmis_connector
chemistry-opencmis-client-api-1.1.0.jar
chemistry-opencmis-client-bindings-1.1.0.jar
chemistry-opencmis-client-impl-1.1.0.jar
chemistry-opencmis-commons-api-1.1.0.jar
chemistry-opencmis-commons-impl-1.1.0.jar
J'ai trouvé une question avec les mêmes symptômes et un bug dans la communauté sur ce problème:
https://community.bonitasoft.com/questions-and-answers/authentication-provider-does-not-implement-authenticationprovider
https://bonita.atlassian.net/browse/BBPMC-642
Pouvez-vous m'aider a comprendre comment éviter ce problème qui bloque mon processus?
Merci d'avance,
Cordialement,