diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2021-01-28 01:46:35 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-27 18:46:35 +0100 |
commit | a51cc6dea41b154b946e982fde6cc1a600210a71 (patch) | |
tree | 07e9f38a2f3572bb8ed9a666d33dd30e976bd5e6 /modules/auth | |
parent | 4c6e0295069a3c2f0df3d9f30560906bc2aa73a8 (diff) | |
download | gitea-a51cc6dea41b154b946e982fde6cc1a600210a71.tar.gz gitea-a51cc6dea41b154b946e982fde6cc1a600210a71.zip |
Fix access log (#14475)
Fix #14121, #14478.
The `AccessLog` middleware has to be after `Contexter` or `APIContexter` so that we can get `LoginUserName` if possible.
And also there is a **BREAK** change that it removed internal API access log.
Diffstat (limited to 'modules/auth')
-rw-r--r-- | modules/auth/sso/oauth2.go | 3 | ||||
-rw-r--r-- | modules/auth/sso/sso.go | 10 | ||||
-rw-r--r-- | modules/auth/sso/sspi_windows.go | 7 |
3 files changed, 6 insertions, 14 deletions
diff --git a/modules/auth/sso/oauth2.go b/modules/auth/sso/oauth2.go index c3f6f08fb2..b6f59dc924 100644 --- a/modules/auth/sso/oauth2.go +++ b/modules/auth/sso/oauth2.go @@ -12,6 +12,7 @@ import ( "code.gitea.io/gitea/models" "code.gitea.io/gitea/modules/log" + "code.gitea.io/gitea/modules/middlewares" "code.gitea.io/gitea/modules/timeutil" ) @@ -121,7 +122,7 @@ func (o *OAuth2) VerifyAuthData(req *http.Request, w http.ResponseWriter, store return nil } - if isInternalPath(req) || !isAPIPath(req) && !isAttachmentDownload(req) { + if middlewares.IsInternalPath(req) || !middlewares.IsAPIPath(req) && !isAttachmentDownload(req) { return nil } diff --git a/modules/auth/sso/sso.go b/modules/auth/sso/sso.go index d54310168e..f3788e4c9d 100644 --- a/modules/auth/sso/sso.go +++ b/modules/auth/sso/sso.go @@ -94,16 +94,6 @@ func SessionUser(sess SessionStore) *models.User { return user } -// isAPIPath returns true if the specified URL is an API path -func isAPIPath(req *http.Request) bool { - return strings.HasPrefix(req.URL.Path, "/api/") -} - -// isInternalPath returns true if the specified URL is an internal API path -func isInternalPath(req *http.Request) bool { - return strings.HasPrefix(req.URL.Path, "/api/internal/") -} - // isAttachmentDownload check if request is a file download (GET) with URL to an attachment func isAttachmentDownload(req *http.Request) bool { return strings.HasPrefix(req.URL.Path, "/attachments/") && req.Method == "GET" diff --git a/modules/auth/sso/sspi_windows.go b/modules/auth/sso/sspi_windows.go index 448336c07b..10571d67c5 100644 --- a/modules/auth/sso/sspi_windows.go +++ b/modules/auth/sso/sspi_windows.go @@ -12,6 +12,7 @@ import ( "code.gitea.io/gitea/models" "code.gitea.io/gitea/modules/base" "code.gitea.io/gitea/modules/log" + "code.gitea.io/gitea/modules/middlewares" "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/templates" @@ -135,7 +136,7 @@ func (s *SSPI) VerifyAuthData(req *http.Request, w http.ResponseWriter, store Da } // Make sure requests to API paths and PWA resources do not create a new session - if !isAPIPath(req) && !isAttachmentDownload(req) { + if !middlewares.IsAPIPath(req) && !isAttachmentDownload(req) { handleSignIn(w, req, sess, user) } @@ -166,9 +167,9 @@ func (s *SSPI) shouldAuthenticate(req *http.Request) (shouldAuth bool) { } else if req.FormValue("auth_with_sspi") == "1" { shouldAuth = true } - } else if isInternalPath(req) { + } else if middlewares.IsInternalPath(req) { shouldAuth = false - } else if isAPIPath(req) || isAttachmentDownload(req) { + } else if middlewares.IsAPIPath(req) || isAttachmentDownload(req) { shouldAuth = true } return |