[Carol] Plataforma Carol permite o cadastro de URL inválidas no DataSubscription
Description
01 - STAKEHOLDER (quem valida e esclarece):
02 - PROBLEMA (cenário e/ou dor):
Através desse link curl 'http://localhost:19201/*/mdmSubscription/_search?size=900000' | jq -c '.hits.hits[]["_source"] | {mdmWebhookUrl}' | sort -k1 | uniq -c é possivel validar que a Plataforma Carol permite o cadastro de URL inválidas no Data Subscription. O que posteriormente causa erro na classe SubscriptionMessageReceiver no método getHttpRoute.
Stacktrace:
java.lang.IllegalArgumentException: The string " https" for the URI component SCHEME contains an invalid character, ' ', at index 0.at org.glassfish.jersey.uri.UriComponent.validate(UriComponent.java:140)at org.glassfish.jersey.uri.internal.JerseyUriBuilder.scheme(JerseyUriBuilder.java:258)at org.glassfish.jersey.uri.internal.JerseyUriBuilder.uri(JerseyUriBuilder.java:181)at org.glassfish.jersey.uri.internal.JerseyUriBuilder.uri(JerseyUriBuilder.java:52)at javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:96)at org.glassfish.jersey.client.JerseyWebTarget.<init>(JerseyWebTarget.java:50)at org.glassfish.jersey.client.JerseyClient.target(JerseyClient.java:274)at org.glassfish.jersey.client.JerseyClient.target(JerseyClient.java:56)at com.totvslabs.mdm.worker.handler.pubsub.SubscriptionMessageReceiver.createRequestBuilder(SubscriptionMessageReceiver.java:810)at com.totvslabs.mdm.worker.handler.pubsub.SubscriptionMessageReceiver.receiveMessage(SubscriptionMessageReceiver.java:397)at com.google.cloud.pubsub.v1.MessageDispatcher$3.run(MessageDispatcher.java:514)at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)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:829)
03 - OBJETIVO (solução proposta):
Precisamos tanto criar uma validação para não permitir URL inválida, tanto quanto logar caso a gente tenha uma exception desse tipo pois hoje não temos informações nem qual é a subscription, nem a tenant e nem a URL invalida quando esse cenário acontece.
04 - QUEM PODE USAR (perfis de usuários):
05 - ASSETS (links e arquivos relevantes):
06 - CRITÉRIOS DE ACEITE:
-
Cadastro de URL Inválidas bloqueado tanto pela UI plataforma Carol quanto pelo envio de comandos CURL no terminal
-
Logs registrando tentativas de inserção de URL Inválidas na Carol:
-
Data e Hora da requisição
-
Host / IP de origem da requisição
-
Dispositivo utilizado (User Agent)
-
Tenant ID
-
Subscription ID
-
User ID
-