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 err == nil {
if strings.HasPrefix(fromURL.Scheme, "tcp+") { if strings.HasPrefix(fromURL.Scheme, "tcp+") {
pr.Type = "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+") { } else if strings.HasPrefix(fromURL.Scheme, "udp+") {
pr.Type = "udp" pr.Type = "udp"
pr.ConnectCommand = "pomerium-cli udp " + fromURL.Host 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 { } else {
pr.Type = "http" pr.Type = "http"
} }

View file

@ -17,6 +17,8 @@ func TestRouteFromConfigRoute(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
to2, err := config.ParseWeightedUrls("tcp://postgres:5432") to2, err := config.ParseWeightedUrls("tcp://postgres:5432")
require.NoError(t, err) require.NoError(t, err)
to3, err := config.ParseWeightedUrls("tcp://redis:6379")
require.NoError(t, err)
assert.Equal(t, []portal.Route{ assert.Equal(t, []portal.Route{
{ {
@ -47,6 +49,13 @@ func TestRouteFromConfigRoute(t *testing.T) {
From: "udp+https://dns.example.com:53", From: "udp+https://dns.example.com:53",
ConnectCommand: "pomerium-cli udp 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{ }, portal.RoutesFromConfigRoutes([]*config.Policy{
{ {
From: "https://from.example.com", From: "https://from.example.com",
@ -67,5 +76,10 @@ func TestRouteFromConfigRoute(t *testing.T) {
From: "udp+https://dns.example.com:53", From: "udp+https://dns.example.com:53",
To: to2, 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 && ( {route.connect_command && (
<Box <Box
component="span" component="span"
sx={{ fontFamily: '"DM Mono"', fontSize: "12px" }} sx={{
fontFamily: '"DM Mono"',
fontSize: "12px",
wordBreak: "break-all",
}}
> >
{route.connect_command} {route.connect_command}
</Box> </Box>