From 3f5b8f5d9203aa7ffb7fbe9cdbaf9dba3da6cae6 Mon Sep 17 00:00:00 2001 From: Hybris95 <hybris_95@hotmail.com> Date: Thu, 01 May 2014 16:14:15 -0400 Subject: [PATCH] Fixes sort, page building and search functions on "my tickets" page. --- src/main/java/com/gitblit/servlet/AuthenticationFilter.java | 44 ++++++++++++++++++++------------------------ 1 files changed, 20 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/gitblit/servlet/AuthenticationFilter.java b/src/main/java/com/gitblit/servlet/AuthenticationFilter.java index 214f204..dd821ac 100644 --- a/src/main/java/com/gitblit/servlet/AuthenticationFilter.java +++ b/src/main/java/com/gitblit/servlet/AuthenticationFilter.java @@ -16,14 +16,14 @@ package com.gitblit.servlet; import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; import java.security.Principal; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; -import javax.servlet.Filter; import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; @@ -36,10 +36,13 @@ import org.slf4j.LoggerFactory; import com.gitblit.Constants; -import com.gitblit.manager.ISessionManager; +import com.gitblit.dagger.DaggerFilter; +import com.gitblit.manager.IAuthenticationManager; import com.gitblit.models.UserModel; import com.gitblit.utils.DeepCopier; import com.gitblit.utils.StringUtils; + +import dagger.ObjectGraph; /** * The AuthenticationFilter is a servlet filter that preprocesses requests that @@ -50,7 +53,7 @@ * @author James Moger * */ -public abstract class AuthenticationFilter implements Filter { +public abstract class AuthenticationFilter extends DaggerFilter { protected static final String CHALLENGE = "Basic realm=\"" + Constants.NAME + "\""; @@ -58,10 +61,11 @@ protected transient Logger logger = LoggerFactory.getLogger(getClass()); - protected final ISessionManager sessionManager; + protected IAuthenticationManager authenticationManager; - protected AuthenticationFilter(ISessionManager sessionManager) { - this.sessionManager = sessionManager; + @Override + protected void inject(ObjectGraph dagger) { + this.authenticationManager = dagger.get(IAuthenticationManager.class); } /** @@ -98,6 +102,12 @@ url = url.substring(1); } String fullUrl = url + (StringUtils.isEmpty(params) ? "" : ("?" + params)); + try { + fullUrl = URLDecoder.decode(fullUrl, "UTF-8"); + } catch (UnsupportedEncodingException e) { + logger.warn("UTF-8 decoding of URL failed: "+fullUrl, e); + e.printStackTrace(); + } return fullUrl; } @@ -108,7 +118,7 @@ * @return user */ protected UserModel getUser(HttpServletRequest httpRequest) { - UserModel user = sessionManager.authenticate(httpRequest, requiresClientCertificate()); + UserModel user = authenticationManager.authenticate(httpRequest, requiresClientCertificate()); return user; } @@ -135,20 +145,6 @@ } } } - } - - /** - * @see javax.servlet.Filter#init(javax.servlet.FilterConfig) - */ - @Override - public void init(final FilterConfig config) throws ServletException { - } - - /** - * @see javax.servlet.Filter#destroy() - */ - @Override - public void destroy() { } /** @@ -184,7 +180,7 @@ // Gitblit does not currently use actual roles in the traditional // servlet container sense. That is the reason this is marked // deprecated, but I may want to revisit this. - return user.canAccessRepository(role); + return user.hasRepositoryPermission(role); } @Override @@ -192,4 +188,4 @@ return user; } } -} \ No newline at end of file +} -- Gitblit v1.9.1