Template
1
0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo synced 2024-11-24 10:46:10 +01:00

Revert "[BRANDING] X-Forgejo-OTP can be used instead of X-Gitea-OTP"

This reverts commit 9413fd0274.
This commit is contained in:
Earl Warren 2023-11-14 13:11:42 +01:00
parent d7e67cf616
commit a1e6944bd7
No known key found for this signature in database
GPG key ID: 0579CB2928A78A00
4 changed files with 4 additions and 34 deletions

View file

@ -197,20 +197,13 @@ func (ctx *APIContext) SetLinkHeader(total, pageSize int) {
} }
} }
func getOtpHeader(header http.Header) string {
otpHeader := header.Get("X-Gitea-OTP")
if forgejoHeader := header.Get("X-Forgejo-OTP"); forgejoHeader != "" {
otpHeader = forgejoHeader
}
return otpHeader
}
// CheckForOTP validates OTP // CheckForOTP validates OTP
func (ctx *APIContext) CheckForOTP() { func (ctx *APIContext) CheckForOTP() {
if skip, ok := ctx.Data["SkipLocalTwoFA"]; ok && skip.(bool) { if skip, ok := ctx.Data["SkipLocalTwoFA"]; ok && skip.(bool) {
return // Skip 2FA return // Skip 2FA
} }
otpHeader := ctx.Req.Header.Get("X-Gitea-OTP")
twofa, err := auth.GetTwoFactorByUID(ctx.Doer.ID) twofa, err := auth.GetTwoFactorByUID(ctx.Doer.ID)
if err != nil { if err != nil {
if auth.IsErrTwoFactorNotEnrolled(err) { if auth.IsErrTwoFactorNotEnrolled(err) {
@ -219,7 +212,7 @@ func (ctx *APIContext) CheckForOTP() {
ctx.Error(http.StatusInternalServerError, "GetTwoFactorByUID", err) ctx.Error(http.StatusInternalServerError, "GetTwoFactorByUID", err)
return return
} }
ok, err := twofa.ValidateTOTP(getOtpHeader(ctx.Req.Header)) ok, err := twofa.ValidateTOTP(otpHeader)
if err != nil { if err != nil {
ctx.Error(http.StatusInternalServerError, "ValidateTOTP", err) ctx.Error(http.StatusInternalServerError, "ValidateTOTP", err)
return return

View file

@ -1,23 +0,0 @@
// SPDX-License-Identifier: MIT
package context
import (
"net/http"
"testing"
"github.com/stretchr/testify/assert"
)
func TestGetOtpHeader(t *testing.T) {
header := http.Header{}
assert.EqualValues(t, "", getOtpHeader(header))
// Gitea
giteaOtp := "123456"
header.Set("X-Gitea-OTP", giteaOtp)
assert.EqualValues(t, giteaOtp, getOtpHeader(header))
// Forgejo has precedence
forgejoOtp := "abcdef"
header.Set("X-Forgejo-OTP", forgejoOtp)
assert.EqualValues(t, forgejoOtp, getOtpHeader(header))
}

View file

@ -56,7 +56,7 @@
// description: Sudo API request as the user provided as the key. Admin privileges are required. // description: Sudo API request as the user provided as the key. Admin privileges are required.
// TOTPHeader: // TOTPHeader:
// type: apiKey // type: apiKey
// name: X-FORGEJO-OTP // name: X-GITEA-OTP
// in: header // in: header
// description: Must be used in combination with BasicAuth if two-factor authentication is enabled. // description: Must be used in combination with BasicAuth if two-factor authentication is enabled.
// //

View file

@ -23138,7 +23138,7 @@
"TOTPHeader": { "TOTPHeader": {
"description": "Must be used in combination with BasicAuth if two-factor authentication is enabled.", "description": "Must be used in combination with BasicAuth if two-factor authentication is enabled.",
"type": "apiKey", "type": "apiKey",
"name": "X-FORGEJO-OTP", "name": "X-GITEA-OTP",
"in": "header" "in": "header"
}, },
"Token": { "Token": {