From 9b72a2e674f7cbc320b0b72fc71ad813d296ab12 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 22 Sep 2011 12:04:43 -0400
Subject: [PATCH] Updated to JGit 1.1.0 and reverse-sort library dependencies.
---
src/com/gitblit/FederationServlet.java | 23 ++++++++++++++++++++---
1 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/src/com/gitblit/FederationServlet.java b/src/com/gitblit/FederationServlet.java
index b8b6408..a84e90c 100644
--- a/src/com/gitblit/FederationServlet.java
+++ b/src/com/gitblit/FederationServlet.java
@@ -117,9 +117,10 @@
return;
}
- String uuid = GitBlit.getString(Keys.federation.uuid, "");
+ String uuid = GitBlit.getString(Keys.federation.passphrase, "");
if (StringUtils.isEmpty(uuid)) {
- logger.warn(Keys.federation.uuid + " is not properly set! Federation request denied.");
+ logger.warn(Keys.federation.passphrase
+ + " is not properly set! Federation request denied.");
response.sendError(HttpServletResponse.SC_FORBIDDEN);
return;
}
@@ -224,6 +225,12 @@
Object result = null;
if (FederationRequest.PULL_REPOSITORIES.equals(reqType)) {
+ // build a reverse-lookup for token->federation set name
+ Map<String, String> federationSets = new HashMap<String, String>();
+ for (String set : GitBlit.getStrings(Keys.federation.sets)) {
+ federationSets.put(GitBlit.self().getFederationToken(set), set);
+ }
+
// Determine the Gitblit clone url
StringBuilder sb = new StringBuilder();
sb.append(HttpUtils.getHostURL(request));
@@ -252,7 +259,17 @@
}
break;
}
- repositories.put(url, model);
+
+ if (federationSets.containsKey(token)) {
+ // include repositories only for federation set
+ String set = federationSets.get(token);
+ if (model.federationSets.contains(set)) {
+ repositories.put(url, model);
+ }
+ } else {
+ // standard federation token for ALL
+ repositories.put(url, model);
+ }
}
result = repositories;
} else {
--
Gitblit v1.9.1