From 73f1adb2e84b8b9cd4045bcdd7d9afa72d3875b5 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Tue, 27 Nov 2012 17:13:03 -0500 Subject: [PATCH] Added short commit id column to log and history tables (issue 168) --- src/com/gitblit/AuthenticationFilter.java | 22 +++++++++++++++++++++- 1 files changed, 21 insertions(+), 1 deletions(-) diff --git a/src/com/gitblit/AuthenticationFilter.java b/src/com/gitblit/AuthenticationFilter.java index 50a67a0..64aa441 100644 --- a/src/com/gitblit/AuthenticationFilter.java +++ b/src/com/gitblit/AuthenticationFilter.java @@ -69,6 +69,15 @@ @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() { + return false; + } /** * Returns the full relative url of the request. @@ -95,6 +104,16 @@ */ protected UserModel getUser(HttpServletRequest httpRequest) { UserModel user = null; + // try request authentication + user = GitBlit.self().authenticate(httpRequest); + if (user != null) { + return user; + } else if (requiresClientCertificate()) { + // http request does not have a valid certificate + // and the filter requires one + return null; + } + // look for client authorization credentials in header final String authorization = httpRequest.getHeader("Authorization"); if (authorization != null && authorization.startsWith(BASIC)) { @@ -170,6 +189,7 @@ public AuthenticatedRequest(HttpServletRequest req) { super(req); user = new UserModel("anonymous"); + user.isAuthenticated = false; } UserModel getUser() { @@ -188,7 +208,7 @@ @Override public boolean isUserInRole(String role) { if (role.equals(Constants.ADMIN_ROLE)) { - return user.canAdmin; + return user.canAdmin(); } // Gitblit does not currently use actual roles in the traditional // servlet container sense. That is the reason this is marked -- Gitblit v1.9.1