mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-10-24 11:02:42 +00:00
[BRANDING] X-Forgejo-OTP can be used instead of X-Gitea-OTP
(cherry picked from commit7b0549cd70) (cherry picked from commit13e10a65d9) (cherry picked from commit65bdd73cf2) (cherry picked from commit64eba8bb92) (cherry picked from commit4c49b1a759) (cherry picked from commit93b4d06406) (cherry picked from commite2bc5f36d9) (cherry picked from commit2bee76f9df) (cherry picked from commit3d8a1b4a9f) (cherry picked from commit99dd092cd0) (cherry picked from commit0fdbd02204) (cherry picked from commit70b277a183) (cherry picked from commit3eece7fbb4) (cherry picked from commit4838fc9e11) (cherry picked from commitb76ed541cf) (cherry picked from commitdcdfb5b65c) (cherry picked from commit377dc48cdc) (cherry picked from commitacc862f411) (cherry picked from commitac75ef101f) (cherry picked from commit08f2d9f7c5) (cherry picked from commite4096f0b64) (cherry picked from commitbf5876f062) (cherry picked from commit7dc60637e5) (cherry picked from commitef3101774b) (cherry picked from commitecb9e8867c) (cherry picked from commit64f0ae72fe) (cherry picked from commit8dd6ec7862) (cherry picked from commitb36723e52b) Conflicts: modules/context/api.go https://codeberg.org/forgejo/forgejo/pulls/1466 (cherry picked from commit5c378e0cb8) (cherry picked from commit1d87602819) (cherry picked from commit0f72002d66) (cherry picked from commitda2556eb13) (cherry picked from commit543bb4ba3e) (cherry picked from commit7b43c470e5) (cherry picked from commit44422a106a)
This commit is contained in:
parent
bdfdc7e169
commit
ac7e8bdf04
4 changed files with 34 additions and 4 deletions
|
|
@ -205,13 +205,20 @@ 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
|
||||
func (ctx *APIContext) CheckForOTP() {
|
||||
if skip, ok := ctx.Data["SkipLocalTwoFA"]; ok && skip.(bool) {
|
||||
return // Skip 2FA
|
||||
}
|
||||
|
||||
otpHeader := ctx.Req.Header.Get("X-Gitea-OTP")
|
||||
twofa, err := auth.GetTwoFactorByUID(ctx, ctx.Doer.ID)
|
||||
if err != nil {
|
||||
if auth.IsErrTwoFactorNotEnrolled(err) {
|
||||
|
|
@ -220,7 +227,7 @@ func (ctx *APIContext) CheckForOTP() {
|
|||
ctx.Error(http.StatusInternalServerError, "GetTwoFactorByUID", err)
|
||||
return
|
||||
}
|
||||
ok, err := twofa.ValidateTOTP(otpHeader)
|
||||
ok, err := twofa.ValidateTOTP(getOtpHeader(ctx.Req.Header))
|
||||
if err != nil {
|
||||
ctx.Error(http.StatusInternalServerError, "ValidateTOTP", err)
|
||||
return
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue