Closed vbombaerts closed 2 years ago
@davinciagf A déployer pour test avec ajout de la conf en base cf. https://github.com/SPW-DIG/metawal-core-geonetwork/commit/825f4b251e1d4ef912acaeb5e6e14ba840012b5e
Pour le moment ça tourne sans donner de résultat. J'ai attendu 10-15 min.
Depuis l'interface d'édition :
Même après mise à jour des paramètres du validateur on a le même résultat. (càd pas de résultat) Par ailleurs, le macaron relatif à l'état de validation INSPIRE ne s'affiche pas dans l'interface de contribution.
Par ailleurs, le macaron relatif à l'état de validation INSPIRE ne s'affiche pas dans l'interface de contribution.
Ce sera corrigé avec https://github.com/titellus/core-geonetwork/pull/50. Ca doit pas être systématique mais en effet.
Même après mise à jour des paramètres du validateur on a le même résultat. (càd pas de résultat)
En prod ou en valid ? En prod il manque la settings pour la clé - on n'a pas joué la migration ? cf. https://github.com/SPW-DIG/metawal-core-geonetwork/blob/metawal-4.0.x/web/src/main/webapp/WEB-INF/classes/setup/sql-metawal/migrate/4.0.6/migrate-mw.sql#L7
On est en test. Ils ont passé l'appli en prod avant qu'on donne le go :(
On a le même message que si on avait configuré avec l'ancienne adresse du validateur. La nouvelle adresse est-elle bien prise en compte ?
Ok si upload, Pas ok si validation par portail INSPIRE
Ok si upload, Pas ok si validation par portail INSPIRE
A priori, on envoie bien la clé dans le mode portail:
C'est difficile à tester en local, car le validateur ne peux pas accéder à notre machine.
Avec curl, on a dépassé notre quota du mois :/
J'ajoute l'affichage de l'erreur dans l'éditeur
J'ai envoyé un message au support pour une indulgence.
Re testé ce jour en env. de test. Pas d'erreur dans l'interface. Le timer tourne et s'arrête mais aucun statut de validation au final.
Dans la console, le résultat de la requête est 400
{message: "IOException", code: "runtime_exception",…}
code: "runtime_exception"
description: "Error while creating test on validator side. Status is: 200 (OK). Error: {\"error\":\"unable to find valid certification path to requested target\",\"timestamp\":\"1634894743863\",\"url\":\"http://inspire.ec.europa.eu/validator/v2/TestRuns\",\"stacktrace\":[\"sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target\",\"\\tat sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:146)\",\"\\tat sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:131)\",\"\\tat java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)\",\"\\tat sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:382)\",\" [wrapped] sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target\",\"\\tat sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:387)\",\"\\tat sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)\",\"\\tat sun.security.validator.Validator.validate(Validator.java:260)\",\"\\tat sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)\",\"\\tat sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229)\",\"\\tat sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124)\",\"\\tat sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1491)\",\" [wrapped] javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target\",\"\\tat sun.security.ssl.Alerts.getSSLException(Alerts.java:192)\",\"\\tat sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949)\",\"\\tat sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302)\",\"\\tat sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296)\",\"\\tat sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1509)\",\"\\tat sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216)\",\"\\tat sun.security.ssl.Handshaker.processLoop(Handshaker.java:979)\",\"\\tat sun.security.ssl.Handshaker.process_record(Handshaker.java:914)\",\"\\tat sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062)\",\"\\tat sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)\",\"\\tat sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)\",\"\\tat sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)\",\"\\tat sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)\",\"\\tat sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)\",\"\\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1513)\",\"\\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)\",\"\\tat java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)\",\"\\tat sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)\",\"\\tat de.interactive_instruments.UriUtils.followRedirects(UriUtils.java:902)\",\"\\tat de.interactive_instruments.UriUtils.openHttpGetConnection(UriUtils.java:876)\",\"\\tat de.interactive_instruments.UriUtils.proposeFilename(UriUtils.java:730)\",\"\\tat de.interactive_instruments.etf.webapp.dto.SimpleTestObject.toTestObject(SimpleTestObject.java:126)\",\"\\tat de.interactive_instruments.etf.webapp.dto.StartTestRunRequest.toTestRun(StartTestRunRequest.java:114)\",\"\\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:474)\",\" [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target\",\"\\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:521)\",\"\\tat sun.reflect.GeneratedMethodAccessor260.invoke(Unknown Source)\",\"\\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\",\"\\tat java.lang.reflect.Method.invoke(Method.java:497)\",\"\\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\",\"\\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)\",\"\\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)\",\"\\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)\",\"\\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)\",\"\\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)\",\"\\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)\",\" [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target\",\"\\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)\",\"\\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)\",\"\\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)\",\"\\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)\",\"\\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)\",\"\\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)\",\"\\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)\",\"\\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)\",\"\\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)\",\"\\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)\",\"\\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\",\"\\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)\",\"\\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)\",\"\\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)\",\"\\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)\",\"\\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)\",\"\\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)\",\"\\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)\",\"\\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)\",\"\\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)\",\"\\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)\",\"\\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)\",\"\\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)\",\"\\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)\",\"\\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)\",\"\\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)\",\"\\tat org.eclipse.jetty.server.Server.handle(Server.java:517)\",\"\\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)\",\"\\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)\",\"\\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)\",\"\\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)\",\"\\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)\",\"\\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)\",\"\\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)\",\"\\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)\",\"\\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)\",\"\\tat java.lang.Thread.run(Thread.java:745)\"]}"
message: "IOException"
Vérifier le cache (js et css) pour l'affichage du message.
et
Validation directe OK en single et en batch Validation via portail INSPIRE wallon pas OK en single et en batch.
Environnement de valid : validation directe OK. via portail KO.
Environnement de prod : validation directe OK et via portail OK !
Impossible de valider une fiche. Je reçois le message suivant :
J'ai vérifié la configuration. L'adresse du validateur et le numéro de clé n'étaient pas encodés correctement. J'ai modifié et j'ai toujours la même erreur.
L'adresse du service de validation a-t-elle changé ?
https://y9tuozgmmc.execute-api.eu-west-1.amazonaws.com/validator/v2/
J'ai requêté cette adresse directement dans le navigateur et j'ai obtenu la réponse suivante :
{"message": "Network error communicating with endpoint"}
Erreur d'adresse. L'adresse indiquée sur leur github n'est pas la bonne. Bonne adresse : https://yzyiqfakm4.execute-api.eu-west-1.amazonaws.com/validator
Et maintenant j'ai ça comme erreur :
Le serveur du validateur semble hs
Error while creating test on validator side. Status is: 500 (Internal Server Error). Error: {"error":"The test run initialization failed due to an internal error. Please contact a system administrator.","timestamp":"1639137854143","url":"http://inspire-validator.eu-west-1.elasticbeanstalk.com:8080/validator/v2/TestRuns","id":"l.internal.testrun.initialization.error","stacktrace":["java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask@6680bf07 rejected from java.util.concurrent.ThreadPoolExecutor@80cbfca[Running, pool size = 4, active threads = 4, queued tasks = 12, completed tasks = 255]","\tat java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2047)","\tat java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:823)","\tat java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1369)","\tat java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)","\tat de.interactive_instruments.etf.testdriver.TaskPoolRegistry.submitTask(TaskPoolRegistry.java:162)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.initAndSubmit(TestRunController.java:258)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask@6680bf07 rejected from java.util.concurrent.ThreadPoolExecutor@80cbfca[Running, pool size = 4, active threads = 4, queued tasks = 12, completed tasks = 255]","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.initAndSubmit(TestRunController.java:260)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:510)","\tat sun.reflect.GeneratedMethodAccessor180.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask@6680bf07 rejected from java.util.concurrent.ThreadPoolExecutor@80cbfca[Running, pool size = 4, active threads = 4, queued tasks = 12, completed tasks = 255]","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
Le serveur du validateur semble hs
Oui, c'était la mauvaise adresse. Mais ça ne marche pas mieux maintenant avec la bonne adresse... A mon avis, c'est surchargé.
https://inspire.ec.europa.eu/validator/swagger-ui.html#!/1._Service_Status/getStatusUsingGET
Apparemment serveur de test down côté JRC.
Je suis passé sur l'instance de staging. Ca tourne pour le moment. http://staging-inspire-validator.eu-west-1.elasticbeanstalk.com/validator/
Ajout de la clé d'API pour la validation INSPIRE. Attention : il existe des limitations d'utilisation. Il faudrait que Metawal en tienne compte en avertissant l'utilisateur et peut-être en gérant ces limitations (peut-être en paramètre dans l'interface d'admin pour les adapter facilement si jamais le JRC les change).