aboutsummaryrefslogtreecommitdiffstats
path: root/modules/auth
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2021-01-28 01:46:35 +0800
committerGitHub <noreply@github.com>2021-01-27 18:46:35 +0100
commita51cc6dea41b154b946e982fde6cc1a600210a71 (patch)
tree07e9f38a2f3572bb8ed9a666d33dd30e976bd5e6 /modules/auth
parent4c6e0295069a3c2f0df3d9f30560906bc2aa73a8 (diff)
downloadgitea-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.go3
-rw-r--r--modules/auth/sso/sso.go10
-rw-r--r--modules/auth/sso/sspi_windows.go7
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