diff --git a/src/main/scala/gitbucket/core/servlet/BasicAuthenticationFilter.scala b/src/main/scala/gitbucket/core/servlet/BasicAuthenticationFilter.scala index ebd7bc8..1badf0e 100644 --- a/src/main/scala/gitbucket/core/servlet/BasicAuthenticationFilter.scala +++ b/src/main/scala/gitbucket/core/servlet/BasicAuthenticationFilter.scala @@ -28,7 +28,6 @@ } val isUpdating = request.getRequestURI.endsWith("/git-receive-pack") || "service=git-receive-pack".equals(request.getQueryString) - val settings = loadSystemSettings() try { @@ -44,13 +43,15 @@ case auth => decodeAuthHeader(auth).split(":") match { case Array(username, password) => { authenticate(settings, username, password) match { - case Some(account) => { - if(isUpdating && hasWritePermission(repository.owner, repository.name, Some(account))){ + case Some(account) if (isUpdating || repository.repository.isPrivate) => { + if(hasWritePermission(repository.owner, repository.name, Some(account))){ request.setAttribute(Keys.Request.UserName, account.userName) + chain.doFilter(req, wrappedResponse) + } else { + requireAuth(response) } - chain.doFilter(req, wrappedResponse) } - case None => requireAuth(response) + case _ => requireAuth(response) } } case _ => requireAuth(response)