From d6ccf989ab397a67ef30e96b82a2841539654d6e Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Sat, 08 Mar 2014 20:44:16 -0500 Subject: [PATCH] Listen for git daemon and fanout clients on all intefaces, by default --- src/main/java/com/gitblit/git/RepositoryResolver.java | 28 +++++++++++++++------------- 1 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/gitblit/git/RepositoryResolver.java b/src/main/java/com/gitblit/git/RepositoryResolver.java index 21a8376..208c1ae 100644 --- a/src/main/java/com/gitblit/git/RepositoryResolver.java +++ b/src/main/java/com/gitblit/git/RepositoryResolver.java @@ -15,7 +15,6 @@ */ package com.gitblit.git; -import java.io.File; import java.io.IOException; import java.text.MessageFormat; @@ -28,22 +27,25 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.gitblit.GitBlit; +import com.gitblit.manager.IGitblit; import com.gitblit.models.RepositoryModel; import com.gitblit.models.UserModel; /** * Resolves repositories and grants export access. - * + * * @author James Moger * */ public class RepositoryResolver<X> extends FileResolver<X> { private final Logger logger = LoggerFactory.getLogger(RepositoryResolver.class); - - public RepositoryResolver(File repositoriesFolder) { - super(repositoriesFolder, true); + + private final IGitblit gitblit; + + public RepositoryResolver(IGitblit gitblit) { + super(gitblit.getRepositoriesFolder(), true); + this.gitblit = gitblit; } /** @@ -53,7 +55,7 @@ public Repository open(final X req, final String name) throws RepositoryNotFoundException, ServiceNotEnabledException { Repository repo = super.open(req, name); - + // Set repository name for the pack factories // We do this because the JGit API does not have a consistent way to // retrieve the repository name from the pack factories or the hooks. @@ -68,18 +70,18 @@ } return repo; } - + /** * Check if this repository can be served by the requested client connection. */ @Override protected boolean isExportOk(X req, String repositoryName, Repository db) throws IOException { - RepositoryModel model = GitBlit.self().getRepositoryModel(repositoryName); + RepositoryModel model = gitblit.getRepositoryModel(repositoryName); String scheme = null; UserModel user = null; String origin = null; - + if (req instanceof GitDaemonClient) { // git daemon request // this is an anonymous/unauthenticated protocol @@ -90,9 +92,9 @@ } else if (req instanceof HttpServletRequest) { // http/https request HttpServletRequest httpRequest = (HttpServletRequest) req; - scheme = httpRequest.getScheme(); + scheme = httpRequest.getScheme(); origin = httpRequest.getRemoteAddr(); - user = GitBlit.self().authenticate(httpRequest); + user = gitblit.authenticate(httpRequest); if (user == null) { user = UserModel.ANONYMOUS; } @@ -104,7 +106,7 @@ scheme, repositoryName, user.username, origin)); return true; } - + // user can not access this git repo logger.warn(MessageFormat.format("{0}:// access of {1} by {2} from {3} DENIED", scheme, repositoryName, user.username, origin)); -- Gitblit v1.9.1