From f46f5909f1b6fc46bf70a5f170ddaab31ef6725c Mon Sep 17 00:00:00 2001 From: Naoki Takezoe Date: Tue, 25 Apr 2017 13:53:50 +0900 Subject: [PATCH] (refs #1554)Enable DB session for plugin git repo authentication --- .../servlet/GitAuthenticationFilter.scala | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/main/scala/gitbucket/core/servlet/GitAuthenticationFilter.scala b/src/main/scala/gitbucket/core/servlet/GitAuthenticationFilter.scala index 7e0ba9797..2947fde64 100644 --- a/src/main/scala/gitbucket/core/servlet/GitAuthenticationFilter.scala +++ b/src/main/scala/gitbucket/core/servlet/GitAuthenticationFilter.scala @@ -51,21 +51,21 @@ class GitAuthenticationFilter extends Filter with RepositoryService with Account private def pluginRepository(request: HttpServletRequest, response: HttpServletResponse, chain: FilterChain, settings: SystemSettings, isUpdating: Boolean, filter: GitRepositoryFilter): Unit = { - implicit val r = request + Database() withSession { implicit session => + val account = for { + auth <- Option(request.getHeader("Authorization")) + Array(username, password) = AuthUtil.decodeAuthHeader(auth).split(":", 2) + account <- authenticate(settings, username, password) + } yield { + request.setAttribute(Keys.Request.UserName, account.userName) + account + } - val account = for { - auth <- Option(request.getHeader("Authorization")) - Array(username, password) = AuthUtil.decodeAuthHeader(auth).split(":", 2) - account <- authenticate(settings, username, password) - } yield { - request.setAttribute(Keys.Request.UserName, account.userName) - account - } - - if(filter.filter(request.gitRepositoryPath, account.map(_.userName), settings, isUpdating)){ - chain.doFilter(request, response) - } else { - AuthUtil.requireAuth(response) + if (filter.filter(request.gitRepositoryPath, account.map(_.userName), settings, isUpdating)) { + chain.doFilter(request, response) + } else { + AuthUtil.requireAuth(response) + } } }