|
- package passkey
-
- import (
- "crypto/tls"
- "net/http/httptest"
- "testing"
-
- "github.com/QuantumNous/new-api/setting/system_setting"
- "github.com/stretchr/testify/require"
- )
-
- func TestResolveOriginsRejectsInsecureConfiguredOriginUnlessAllowed(t *testing.T) {
- request := httptest.NewRequest("GET", "https://gateway.example", nil)
- settings := &system_setting.PasskeySettings{Origins: "http://gateway.example", AllowInsecureOrigin: false}
-
- _, err := resolveOrigins(request, settings)
-
- require.Error(t, err)
- settings.AllowInsecureOrigin = true
- origins, err := resolveOrigins(request, settings)
- require.NoError(t, err)
- require.Equal(t, []string{"http://gateway.example"}, origins)
- }
-
- func TestResolveOriginsUsesForwardedHTTPSAndRejectsUnsecuredPublicHost(t *testing.T) {
- settings := &system_setting.PasskeySettings{}
- request := httptest.NewRequest("GET", "http://gateway.example:8443", nil)
- request.Header.Set("X-Forwarded-Proto", "https, http")
-
- origins, err := resolveOrigins(request, settings)
- require.NoError(t, err)
- require.Equal(t, []string{"https://gateway.example:8443"}, origins)
-
- request = httptest.NewRequest("GET", "http://gateway.example", nil)
- _, err = resolveOrigins(request, settings)
- require.Error(t, err)
- }
-
- func TestResolveRPIDAndSchemeDetection(t *testing.T) {
- settings := &system_setting.PasskeySettings{}
- rpID, err := resolveRPID(nil, settings, []string{"https://gateway.example:8443"})
- require.NoError(t, err)
- require.Equal(t, "gateway.example", rpID)
-
- settings.RPID = " configured.example:9443 "
- rpID, err = resolveRPID(nil, settings, nil)
- require.NoError(t, err)
- require.Equal(t, "configured.example", rpID)
-
- request := httptest.NewRequest("GET", "http://localhost", nil)
- request.TLS = &tls.ConnectionState{}
- require.Equal(t, "https", detectScheme(request))
- require.Equal(t, "::1", hostWithoutPort("[::1]:443"))
- }
|