proxy: fix connect command in routes portal (#5475)

This commit is contained in:
Caleb Doxsey 2025-02-13 11:44:18 -07:00 committed by GitHub
parent 3043e98fab
commit 6e22b7a19a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 29 additions and 2 deletions

View file

@ -36,10 +36,19 @@ func RoutesFromConfigRoutes(routes []*config.Policy) []Route {
if err == nil {
if strings.HasPrefix(fromURL.Scheme, "tcp+") {
pr.Type = "tcp"
pr.ConnectCommand = "pomerium-cli tcp " + fromURL.Host
if len(fromURL.Path) > 1 {
pr.ConnectCommand = "pomerium-cli tcp " + fromURL.String()
} else {
pr.ConnectCommand = "pomerium-cli tcp " + fromURL.Host
}
} else if strings.HasPrefix(fromURL.Scheme, "udp+") {
pr.Type = "udp"
pr.ConnectCommand = "pomerium-cli udp " + fromURL.Host
if len(fromURL.Path) > 1 {
pr.ConnectCommand = "pomerium-cli udp " + fromURL.String()
} else {
pr.ConnectCommand = "pomerium-cli udp " + fromURL.Host
}
} else {
pr.Type = "http"
}

View file

@ -17,6 +17,8 @@ func TestRouteFromConfigRoute(t *testing.T) {
require.NoError(t, err)
to2, err := config.ParseWeightedUrls("tcp://postgres:5432")
require.NoError(t, err)
to3, err := config.ParseWeightedUrls("tcp://redis:6379")
require.NoError(t, err)
assert.Equal(t, []portal.Route{
{
@ -47,6 +49,13 @@ func TestRouteFromConfigRoute(t *testing.T) {
From: "udp+https://dns.example.com:53",
ConnectCommand: "pomerium-cli udp dns.example.com:53",
},
{
ID: "8544b096d71c5dfe",
Name: "redis",
Type: "tcp",
From: "tcp+https://proxy.corp.example.com:8443/redis.internal.example.com:6379",
ConnectCommand: "pomerium-cli tcp tcp+https://proxy.corp.example.com:8443/redis.internal.example.com:6379",
},
}, portal.RoutesFromConfigRoutes([]*config.Policy{
{
From: "https://from.example.com",
@ -67,5 +76,10 @@ func TestRouteFromConfigRoute(t *testing.T) {
From: "udp+https://dns.example.com:53",
To: to2,
},
{
Name: "redis",
From: "tcp+https://proxy.corp.example.com:8443/redis.internal.example.com:6379",
To: to3,
},
}))
}

View file

@ -76,7 +76,11 @@ const RouteCard: FC<RouteCardProps> = ({ route }) => {
{route.connect_command && (
<Box
component="span"
sx={{ fontFamily: '"DM Mono"', fontSize: "12px" }}
sx={{
fontFamily: '"DM Mono"',
fontSize: "12px",
wordBreak: "break-all",
}}
>
{route.connect_command}
</Box>