mirror of
https://github.com/coder/coder.git
synced 2025-07-06 15:41:45 +00:00
fix(coderd): userOIDC: ignore leading @ of EmailDomain (#13568)
This commit is contained in:
@ -960,6 +960,8 @@ func (api *API) userOIDC(rw http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
userEmailDomain := emailSp[len(emailSp)-1]
|
||||
for _, domain := range api.OIDCConfig.EmailDomain {
|
||||
// Folks sometimes enter EmailDomain with a leading '@'.
|
||||
domain = strings.TrimPrefix(domain, "@")
|
||||
if strings.EqualFold(userEmailDomain, domain) {
|
||||
ok = true
|
||||
break
|
||||
|
@ -941,6 +941,30 @@ func TestUserOIDC(t *testing.T) {
|
||||
},
|
||||
StatusCode: http.StatusForbidden,
|
||||
},
|
||||
{
|
||||
Name: "EmailDomainWithLeadingAt",
|
||||
IDTokenClaims: jwt.MapClaims{
|
||||
"email": "cian@coder.com",
|
||||
"email_verified": true,
|
||||
},
|
||||
AllowSignups: true,
|
||||
EmailDomain: []string{
|
||||
"@coder.com",
|
||||
},
|
||||
StatusCode: http.StatusOK,
|
||||
},
|
||||
{
|
||||
Name: "EmailDomainForbiddenWithLeadingAt",
|
||||
IDTokenClaims: jwt.MapClaims{
|
||||
"email": "kyle@kwc.io",
|
||||
"email_verified": true,
|
||||
},
|
||||
AllowSignups: true,
|
||||
EmailDomain: []string{
|
||||
"@coder.com",
|
||||
},
|
||||
StatusCode: http.StatusForbidden,
|
||||
},
|
||||
{
|
||||
Name: "EmailDomainCaseInsensitive",
|
||||
IDTokenClaims: jwt.MapClaims{
|
||||
|
Reference in New Issue
Block a user