Skip to content

Commit 9f970bc

Browse files
committed
Fix: Update
1 parent 068a6f8 commit 9f970bc

File tree

2 files changed

+37
-42
lines changed

2 files changed

+37
-42
lines changed

dbos/system_database.go

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"log/slog"
99
"math"
1010
"math/rand"
11+
"net/url"
1112
"strings"
1213
"sync"
1314
"time"
@@ -253,9 +254,14 @@ func newSystemDatabase(ctx context.Context, inputs newSystemDatabaseInput) (syst
253254
customPool := inputs.customPool
254255
logger := inputs.logger
255256

256-
maskedDatabaseURL := maskPassword(databaseURL)
257-
fmt.Println(maskedDatabaseURL)
258-
257+
// Displaying Masked Database URL
258+
maskedDatabaseURL, err := maskPassword(databaseURL)
259+
if err != nil {
260+
logger.Warn("Failed to parse database URL", "error", err)
261+
} else {
262+
logger.Info("Masked Database URL", "url", maskedDatabaseURL)
263+
}
264+
259265
// Validate that schema is provided
260266
if databaseSchema == "" {
261267
return nil, fmt.Errorf("database schema cannot be empty")
@@ -2470,3 +2476,31 @@ func backoffWithJitter(retryAttempt int) time.Duration {
24702476
jitter := 0.75 + rand.Float64()*0.5 // #nosec G404 -- trivial use of math/rand
24712477
return time.Duration(exp * jitter)
24722478
}
2479+
2480+
// maskPassword replaces the password in a database URL with asterisks
2481+
func maskPassword(dbURL string) (string, error) {
2482+
parsedURL, err := url.Parse(dbURL)
2483+
2484+
if err != nil {
2485+
return "", err
2486+
}
2487+
2488+
// Check if there is user info with a password
2489+
if parsedURL.User != nil {
2490+
username := parsedURL.User.Username()
2491+
_, hasPassword := parsedURL.User.Password()
2492+
if hasPassword {
2493+
// Manually construct the URL with masked password to avoid encoding
2494+
maskedURL := parsedURL.Scheme + "://" + username + ":********@" + parsedURL.Host + parsedURL.Path
2495+
if parsedURL.RawQuery != "" {
2496+
maskedURL += "?" + parsedURL.RawQuery
2497+
}
2498+
if parsedURL.Fragment != "" {
2499+
maskedURL += "#" + parsedURL.Fragment
2500+
}
2501+
return maskedURL, nil
2502+
}
2503+
}
2504+
2505+
return parsedURL.String(), nil
2506+
}

dbos/utils.go

Lines changed: 0 additions & 39 deletions
This file was deleted.

0 commit comments

Comments
 (0)