From aa6d43e8b28ff73d69a920e9b3a7b284cfce00c3 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 29 Nov 2013 11:05:51 -0500
Subject: [PATCH] Extract SessionManager from GitBlit singleton
---
src/main/java/com/gitblit/AuthenticationFilter.java | 29 ++++++++++++++++++-----------
1 files changed, 18 insertions(+), 11 deletions(-)
diff --git a/src/main/java/com/gitblit/AuthenticationFilter.java b/src/main/java/com/gitblit/AuthenticationFilter.java
index 5319bf3..96d880f 100644
--- a/src/main/java/com/gitblit/AuthenticationFilter.java
+++ b/src/main/java/com/gitblit/AuthenticationFilter.java
@@ -35,17 +35,19 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.gitblit.manager.ISessionManager;
import com.gitblit.models.UserModel;
+import com.gitblit.utils.DeepCopier;
import com.gitblit.utils.StringUtils;
/**
* The AuthenticationFilter is a servlet filter that preprocesses requests that
* match its url pattern definition in the web.xml file.
- *
+ *
* http://en.wikipedia.org/wiki/Basic_access_authentication
- *
+ *
* @author James Moger
- *
+ *
*/
public abstract class AuthenticationFilter implements Filter {
@@ -55,20 +57,26 @@
protected transient Logger logger = LoggerFactory.getLogger(getClass());
+ protected final ISessionManager sessionManager;
+
+ protected AuthenticationFilter(ISessionManager sessionManager) {
+ this.sessionManager = sessionManager;
+ }
+
/**
* doFilter does the actual work of preprocessing the request to ensure that
* the user may proceed.
- *
+ *
* @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest,
* javax.servlet.ServletResponse, javax.servlet.FilterChain)
*/
@Override
public abstract void doFilter(final ServletRequest request, final ServletResponse response,
final FilterChain chain) throws IOException, ServletException;
-
+
/**
* Allow the filter to require a client certificate to continue processing.
- *
+ *
* @return true, if a client certificate is required
*/
protected boolean requiresClientCertificate() {
@@ -77,7 +85,7 @@
/**
* Returns the full relative url of the request.
- *
+ *
* @param httpRequest
* @return url
*/
@@ -94,12 +102,12 @@
/**
* Returns the user making the request, if the user has authenticated.
- *
+ *
* @param httpRequest
* @return user
*/
protected UserModel getUser(HttpServletRequest httpRequest) {
- UserModel user = GitBlit.self().authenticate(httpRequest, requiresClientCertificate());
+ UserModel user = sessionManager.authenticate(httpRequest, requiresClientCertificate());
return user;
}
@@ -151,8 +159,7 @@
public AuthenticatedRequest(HttpServletRequest req) {
super(req);
- user = new UserModel("anonymous");
- user.isAuthenticated = false;
+ user = DeepCopier.copy(UserModel.ANONYMOUS);
}
UserModel getUser() {
--
Gitblit v1.9.1