* fix(security): harden auth and credential handling (HH-444) * fix(security): address HH-444 review blockers * fix(security): close remaining HH-444 review blockers --------- Co-authored-by: Rogee <rogee@ipao.vip>
33 lines
1.2 KiB
Go
33 lines
1.2 KiB
Go
package model_test
|
|
|
|
import (
|
|
"encoding/json"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/gochat/gochat/internal/model"
|
|
channelmodel "github.com/gochat/gochat/internal/model/channel"
|
|
)
|
|
|
|
func TestSensitiveFieldsAreNotSerialized(t *testing.T) {
|
|
const secret = "must-not-appear"
|
|
values := []any{
|
|
model.AccessToken{Token: secret},
|
|
model.AgentBot{Secret: secret, AccessToken: secret},
|
|
model.Inbox{Secret: secret, ChannelConfig: secret},
|
|
model.IntegrationHook{AccessToken: secret},
|
|
model.WebhookSubscription{Secret: secret},
|
|
channelmodel.ChannelAPI{Secret: secret, HMACToken: secret},
|
|
channelmodel.ChannelEmail{IMAPPassword: secret, SMTPPassword: secret},
|
|
channelmodel.ChannelFacebook{PageAccessToken: secret, UserAccessToken: secret, WebhookVerifyToken: secret},
|
|
channelmodel.ChannelTikTok{AccessToken: secret, RefreshToken: secret, WebhookVerifyToken: secret},
|
|
channelmodel.ChannelWhatsApp{AccessToken: secret, ProviderConfig: secret, WebhookVerifyToken: secret},
|
|
}
|
|
for _, value := range values {
|
|
encoded, err := json.Marshal(value)
|
|
require.NoError(t, err)
|
|
require.NotContains(t, string(encoded), secret, "%T exposed a sensitive value", value)
|
|
}
|
|
}
|