From daa54029edcbc3de3f391a54c30f3c5cc99e5d84 Mon Sep 17 00:00:00 2001 From: takezoe Date: Mon, 8 Jul 2013 21:36:18 +0900 Subject: [PATCH] (refs #20)Remove charset from Content-Type header. --- .../scala/servlet/BasicAuthenticationFilter.scala | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/scala/servlet/BasicAuthenticationFilter.scala b/src/main/scala/servlet/BasicAuthenticationFilter.scala index dac50f172..3a861e699 100644 --- a/src/main/scala/servlet/BasicAuthenticationFilter.scala +++ b/src/main/scala/servlet/BasicAuthenticationFilter.scala @@ -21,6 +21,13 @@ class BasicAuthenticationFilter extends Filter with RepositoryService with Accou val request = req.asInstanceOf[HttpServletRequest] val response = res.asInstanceOf[HttpServletResponse] + val wrappedResponse = new HttpServletResponseWrapper(response){ + override def setContentType(contentType: String) = { + setCharacterEncoding(null) + setHeader("Content-Type", contentType) + } + } + try { val paths = request.getRequestURI.substring(request.getContextPath.length).split("/") val repositoryOwner = paths(2) @@ -29,14 +36,14 @@ class BasicAuthenticationFilter extends Filter with RepositoryService with Accou getRepository(repositoryOwner, repositoryName.replaceFirst("\\.wiki", ""), "") match { case Some(repository) => { if(!request.getRequestURI.endsWith("/git-receive-pack") && !repository.repository.isPrivate){ - chain.doFilter(req, res) + chain.doFilter(req, wrappedResponse) } else { request.getHeader("Authorization") match { case null => requireAuth(response) case auth => decodeAuthHeader(auth).split(":") match { case Array(username, password) if(isWritableUser(username, password, repository)) => { request.setAttribute("USER_NAME", username) - chain.doFilter(req, res) + chain.doFilter(req, wrappedResponse) } case _ => requireAuth(response) }