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)
}
}
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))