]> uap-core.de Git - rssreader.git/commitdiff
implement basic auth
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Fri, 29 Aug 2025 18:41:57 +0000 (20:41 +0200)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Fri, 29 Aug 2025 18:41:57 +0000 (20:41 +0200)
rss-application/src/main/kotlin/de/unixwork/rssreader/Database.kt
rss-application/src/main/kotlin/de/unixwork/rssreader/SyncJob.kt

index d67db36b108804902d00f5ae3409367dfc4c9a0c..c8e6a673bf306e0c22126087dbca06fd0e0da132 100644 (file)
@@ -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)
                 }
             }
index 91febb701cd5693d8a08d2e77f608e46ffd175f7..eda5d9aef64863c92e941cff8409fc35cd555599 100644 (file)
@@ -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))