summaryrefslogtreecommitdiffstats
path: root/src/com/gitblit/utils/SyndicationUtils.java
diff options
context:
space:
mode:
authorJames Moger <james.moger@gitblit.com>2011-06-14 16:55:13 -0400
committerJames Moger <james.moger@gitblit.com>2011-06-14 16:55:13 -0400
commit8c9a2037b5c0fed881a3ad6dd9cff364eed603d9 (patch)
tree2144915a2eae2ad9180715da76ddc3ec058b331e /src/com/gitblit/utils/SyndicationUtils.java
parentc2272275ca990f3e12a5c1fa0a5de4c670a4d8b4 (diff)
downloadgitblit-8c9a2037b5c0fed881a3ad6dd9cff364eed603d9.tar.gz
gitblit-8c9a2037b5c0fed881a3ad6dd9cff364eed603d9.zip
Added AccessRestrictionFilter and simplified authentication.
Replaced servlet container basic authentication with a custom servlet filter which performs the same function. The advantage to this is that the servlet container is now divorced from the webapp. The login service (realm) also simplified a great deal and removes its Jetty dependencies. Additionally, the basic authorization pop-up will be displayed as needed based on the repository's access restriction. This was necessary for view-restricted repositories with the RSS feature. Its also necessary for completely open repositories as before it would prompt for credentials. Improved feed syndication feature.
Diffstat (limited to 'src/com/gitblit/utils/SyndicationUtils.java')
-rw-r--r--src/com/gitblit/utils/SyndicationUtils.java19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/com/gitblit/utils/SyndicationUtils.java b/src/com/gitblit/utils/SyndicationUtils.java
index da937f9a..5763af3f 100644
--- a/src/com/gitblit/utils/SyndicationUtils.java
+++ b/src/com/gitblit/utils/SyndicationUtils.java
@@ -24,32 +24,41 @@ import java.util.List;
import org.eclipse.jgit.revwalk.RevCommit;
+import com.gitblit.Constants;
import com.sun.syndication.feed.synd.SyndContent;
import com.sun.syndication.feed.synd.SyndContentImpl;
import com.sun.syndication.feed.synd.SyndEntry;
import com.sun.syndication.feed.synd.SyndEntryImpl;
import com.sun.syndication.feed.synd.SyndFeed;
import com.sun.syndication.feed.synd.SyndFeedImpl;
+import com.sun.syndication.feed.synd.SyndImageImpl;
import com.sun.syndication.io.FeedException;
import com.sun.syndication.io.SyndFeedOutput;
public class SyndicationUtils {
- public static void toRSS(String hostUrl, String title, String description, String repository, List<RevCommit> commits, OutputStream os)
- throws IOException, FeedException {
+ public static void toRSS(String hostUrl, String title, String description, String repository,
+ List<RevCommit> commits, OutputStream os) throws IOException, FeedException {
SyndFeed feed = new SyndFeedImpl();
- feed.setFeedType("rss_1.0");
+ feed.setFeedType("rss_2.0");
feed.setTitle(title);
- feed.setLink(MessageFormat.format("{0}/summary/{1}", hostUrl, repository));
+ feed.setLink(MessageFormat.format("{0}/summary/{1}", hostUrl,
+ StringUtils.encodeURL(repository)));
feed.setDescription(description);
+ SyndImageImpl image = new SyndImageImpl();
+ image.setTitle(Constants.NAME);
+ image.setUrl(hostUrl + Constants.RESOURCE_PATH + "gitblt_25.png");
+ image.setLink(hostUrl);
+ feed.setImage(image);
List<SyndEntry> entries = new ArrayList<SyndEntry>();
for (RevCommit commit : commits) {
SyndEntry entry = new SyndEntryImpl();
entry.setTitle(commit.getShortMessage());
entry.setAuthor(commit.getAuthorIdent().getName());
- entry.setLink(MessageFormat.format("{0}/commit/{1}/{2}", hostUrl, repository, commit.getName()));
+ entry.setLink(MessageFormat.format("{0}/commit/{1}/{2}", hostUrl,
+ StringUtils.encodeURL(repository), commit.getName()));
entry.setPublishedDate(commit.getCommitterIdent().getWhen());
SyndContent content = new SyndContentImpl();