From: Olaf Wintermann Date: Fri, 29 Aug 2025 18:41:57 +0000 (+0200) Subject: implement basic auth X-Git-Url: https://uap-core.de/gitweb/?a=commitdiff_plain;h=c7cdf8f28ef90ec94342f59884ccff7aca1f5597;p=rssreader.git implement basic auth --- diff --git a/rss-application/src/main/kotlin/de/unixwork/rssreader/Database.kt b/rss-application/src/main/kotlin/de/unixwork/rssreader/Database.kt index d67db36..c8e6a67 100644 --- a/rss-application/src/main/kotlin/de/unixwork/rssreader/Database.kt +++ b/rss-application/src/main/kotlin/de/unixwork/rssreader/Database.kt @@ -238,6 +238,9 @@ object Database { val authPassword = rs.getString("auth_password") val certPath = rs.getString("certpath") val feed = Feed(id, feedCollectionId, url) + feed.user = authUser + feed.password = authPassword + feed.certpath = certPath feeds.add(feed) } } diff --git a/rss-application/src/main/kotlin/de/unixwork/rssreader/SyncJob.kt b/rss-application/src/main/kotlin/de/unixwork/rssreader/SyncJob.kt index 91febb7..eda5d9a 100644 --- a/rss-application/src/main/kotlin/de/unixwork/rssreader/SyncJob.kt +++ b/rss-application/src/main/kotlin/de/unixwork/rssreader/SyncJob.kt @@ -28,12 +28,20 @@ class SyncJob { val jobs = feeds.map { feed -> async { try { - val request = HttpRequest.newBuilder() + val requestBuilder = HttpRequest.newBuilder() .uri(URI(feed.uri)) .GET() - .build() + if(feed.user != null && feed.password != null) { + val auth = "${feed.user}:${feed.password}" + val authEncoded = java.util.Base64.getEncoder().encodeToString(auth.toByteArray()) + requestBuilder.header("Authorization", "Basic $authEncoded") + } + val request = requestBuilder.build() val response = client.send(request, HttpResponse.BodyHandlers.ofInputStream()) + if(response.statusCode() > 299) { + throw Exception("HTTP error: ${response.statusCode()}") + } response.body().use { stream -> val input = SyndFeedInput() val syndFeed = input.build(XmlReader(stream))