#3120: prevent webcalendar to reveal endpoint nature

This commit is contained in:
Hivert Quentin committed 2026-11-10 18:08:52 +01:00
1 parent 7abcf08ba1
commit c9d121afdb
2 files changed
+15 -10

No files matched your search

@@ -182,7 +182,10 @@ size_t curl_body_function(void *ptr, size_t size, size_t nmemb, void *buffer)
forKey: @"imported"];
}
else
[result setObject: @"invalid-calendar-content" forKey: @"error"];
{
[self errorWithFormat: @"Invalid calendar content from web calendar %@", location];
[result setObject: @"invalid-calendar-content" forKey: @"error"];
}
}
else if (status == 401)
{
+11 -9
View File
@@ -155,19 +155,21 @@
httpCode = 200;
results = [[self clientObject] loadWebCalendar];
if ([results objectForKey: @"status"])
{
if ([results objectForKey: @"error"])
// Don't reveal how the remote host answered (connection error, HTTP error
// or non-calendar content): all failures except a required authentication
// return the same response. Details are kept in the server log.
error = [results objectForKey: @"error"];
if (error)
{
error = [results objectForKey: @"error"];
if ([error isEqualToString: @"need-auth"])
httpCode = 401;
if ([error isEqualToString: @"invalid-calendar-content"] || [error isEqualToString: @"http-error"])
httpCode = 500;
else
{
httpCode = 500;
[results setObject: @"bad-url" forKey: @"error"];
}
}
[results removeObjectForKey:@"status"];
}
[results removeObjectForKey: @"status"];
return [self responseWithStatus: httpCode andJSONRepresentation: results];
}