From 4e9b3a8940b53dac9d2e14c80ef9030a2e876646 Mon Sep 17 00:00:00 2001 From: Matt Hook Date: Fri, 5 Aug 2022 09:30:54 +1200 Subject: [PATCH] fix(endpoint handler): fix endpoint address(url) parsing EE-3081] (#7408) fix address validation when creating agent endpoint --- api/http/handler/endpoints/endpoint_create.go | 9 +++++++++ app/portainer/environments/environment.service/create.ts | 2 +- .../shared/AgentForm/EnvironmentUrlField.tsx | 3 ++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/api/http/handler/endpoints/endpoint_create.go b/api/http/handler/endpoints/endpoint_create.go index a0d7bf20e..a97c3c79d 100644 --- a/api/http/handler/endpoints/endpoint_create.go +++ b/api/http/handler/endpoints/endpoint_create.go @@ -258,6 +258,15 @@ func (handler *Handler) createEndpoint(payload *endpointCreatePayload) (*portain endpointType := portainer.DockerEnvironment if payload.EndpointCreationType == agentEnvironment { + + // Case insensitive strip http or https scheme if URL entered + index := strings.Index(payload.URL, "://") + if index >= 0 { + payload.URL = payload.URL[index+3:] + } + + payload.URL = "tcp://" + payload.URL + agentPlatform, err := handler.pingAndCheckPlatform(payload) if err != nil { return nil, &httperror.HandlerError{http.StatusInternalServerError, "Unable to get environment type", err} diff --git a/app/portainer/environments/environment.service/create.ts b/app/portainer/environments/environment.service/create.ts index 42630c4c0..87df20c9e 100644 --- a/app/portainer/environments/environment.service/create.ts +++ b/app/portainer/environments/environment.service/create.ts @@ -130,7 +130,7 @@ export async function createRemoteEnvironment({ }: CreateRemoteEnvironment) { return createEnvironment(name, creationType, { ...options, - url: `tcp://${url}`, + url: `${url}`, }); } diff --git a/app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/AgentForm/EnvironmentUrlField.tsx b/app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/AgentForm/EnvironmentUrlField.tsx index d28a0c584..7789520eb 100644 --- a/app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/AgentForm/EnvironmentUrlField.tsx +++ b/app/react/portainer/environments/wizard/EnvironmentsCreationView/shared/AgentForm/EnvironmentUrlField.tsx @@ -8,10 +8,11 @@ export function EnvironmentUrlField() { return (