diff --git a/src/main/java/com/commafeed/backend/feed/FeedUtils.java b/src/main/java/com/commafeed/backend/feed/FeedUtils.java index 7b8ab930..da0feba9 100644 --- a/src/main/java/com/commafeed/backend/feed/FeedUtils.java +++ b/src/main/java/com/commafeed/backend/feed/FeedUtils.java @@ -164,6 +164,14 @@ public class FeedUtils { return sb.toString(); } + public static boolean isHttp(String url) { + return url.startsWith("http://"); + } + + public static boolean isHttps(String url) { + return url.startsWith("https://"); + } + /** * Normalize the url. The resulting url is not meant to be fetched but rather used as a mean to identify a feed and avoid duplicates */ diff --git a/src/main/java/com/commafeed/backend/service/FeedSubscriptionService.java b/src/main/java/com/commafeed/backend/service/FeedSubscriptionService.java index f14c1328..7e32a25e 100644 --- a/src/main/java/com/commafeed/backend/service/FeedSubscriptionService.java +++ b/src/main/java/com/commafeed/backend/service/FeedSubscriptionService.java @@ -14,6 +14,7 @@ import org.apache.commons.lang3.StringUtils; import com.commafeed.CommaFeedConfiguration; import com.commafeed.backend.cache.CacheService; +import com.commafeed.backend.dao.FeedDAO; import com.commafeed.backend.dao.FeedEntryStatusDAO; import com.commafeed.backend.dao.FeedSubscriptionDAO; import com.commafeed.backend.feed.FeedQueues; @@ -37,6 +38,7 @@ public class FeedSubscriptionService { } } + private final FeedDAO feedDAO; private final FeedEntryStatusDAO feedEntryStatusDAO; private final FeedSubscriptionDAO feedSubscriptionDAO; private final FeedService feedService; @@ -64,6 +66,12 @@ public class FeedSubscriptionService { Feed feed = feedService.findOrCreate(url); + // upgrade feed to https if it was using http + if (FeedUtils.isHttp(feed.getUrl()) && FeedUtils.isHttps(url)) { + feed.setUrl(url); + feedDAO.saveOrUpdate(feed); + } + FeedSubscription sub = feedSubscriptionDAO.findByFeed(user, feed); if (sub == null) { sub = new FeedSubscription();