Revert "[BRANDING] X-Forgejo-OTP can be used instead of X-Gitea-OTP"
This reverts commit 9413fd0274
.
This commit is contained in:
parent
d7e67cf616
commit
a1e6944bd7
4 changed files with 4 additions and 34 deletions
|
@ -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
|
||||||
|
|
|
@ -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))
|
|
||||||
}
|
|
|
@ -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.
|
||||||
//
|
//
|
||||||
|
|
2
templates/swagger/v1_json.tmpl
generated
2
templates/swagger/v1_json.tmpl
generated
|
@ -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": {
|
||||||
|
|
Loading…
Reference in a new issue