mirror of
https://github.com/lidarr/lidarr.git
synced 2025-07-16 10:03:51 -07:00
Fixed: Third-party clients calling api without Accept header
This commit is contained in:
parent
17c9fc419c
commit
cc008fb21d
2 changed files with 66 additions and 2 deletions
|
@ -5,10 +5,11 @@ using NLog;
|
|||
using NzbDrone.Common.EnvironmentInfo;
|
||||
using NzbDrone.Common.Instrumentation;
|
||||
using NzbDrone.Core.Instrumentation;
|
||||
using NzbDrone.Core.Lifecycle;
|
||||
using NzbDrone.Core.Messaging.Events;
|
||||
using Lidarr.Http.Extensions.Pipelines;
|
||||
using TinyIoC;
|
||||
using Nancy;
|
||||
using System;
|
||||
using Nancy.Responses.Negotiation;
|
||||
|
||||
namespace Lidarr.Http
|
||||
{
|
||||
|
@ -51,6 +52,18 @@ namespace Lidarr.Http
|
|||
return _tinyIoCContainer;
|
||||
}
|
||||
|
||||
protected override Func<ITypeCatalog, NancyInternalConfiguration> InternalConfiguration
|
||||
{
|
||||
get
|
||||
{
|
||||
// We don't support Xml Serialization atm
|
||||
return NancyInternalConfiguration.WithOverrides(x => {
|
||||
x.ResponseProcessors.Remove(typeof(ViewProcessor));
|
||||
x.ResponseProcessors.Remove(typeof(XmlProcessor));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public override void Configure(Nancy.Configuration.INancyEnvironment environment)
|
||||
{
|
||||
environment.Diagnostics(password: @"password");
|
||||
|
|
51
src/NzbDrone.Integration.Test/GenericApiFixture.cs
Normal file
51
src/NzbDrone.Integration.Test/GenericApiFixture.cs
Normal file
|
@ -0,0 +1,51 @@
|
|||
using System.Net;
|
||||
using FluentAssertions;
|
||||
using NUnit.Framework;
|
||||
using NzbDrone.Common.Extensions;
|
||||
using NzbDrone.Integration.Test.Client;
|
||||
using RestSharp;
|
||||
|
||||
namespace NzbDrone.Integration.Test
|
||||
{
|
||||
[TestFixture]
|
||||
public class GenericApiFixture : IntegrationTest
|
||||
{
|
||||
[TestCase("application/json")]
|
||||
[TestCase("text/html, application/json")]
|
||||
[TestCase("application/xml, application/json")]
|
||||
[TestCase("text/html, */*")]
|
||||
[TestCase("*/*")]
|
||||
[TestCase("")]
|
||||
public void should_get_json_with_accept_header(string header)
|
||||
{
|
||||
|
||||
var request = new RestRequest("system/status")
|
||||
{
|
||||
RequestFormat = DataFormat.None
|
||||
};
|
||||
request.AddHeader("Accept", header);
|
||||
|
||||
var response = RestClient.Execute(request);
|
||||
|
||||
response.StatusCode.Should().Be(HttpStatusCode.OK);
|
||||
response.ContentType.Should().Be("application/json; charset=utf-8");
|
||||
}
|
||||
|
||||
[TestCase("application/xml")]
|
||||
[TestCase("text/html")]
|
||||
[TestCase("application/junk")]
|
||||
public void should_get_unacceptable_with_accept_header(string header)
|
||||
{
|
||||
|
||||
var request = new RestRequest("system/status")
|
||||
{
|
||||
RequestFormat = DataFormat.None
|
||||
};
|
||||
request.AddHeader("Accept", header);
|
||||
|
||||
var response = RestClient.Execute(request);
|
||||
|
||||
response.StatusCode.Should().Be(HttpStatusCode.NotAcceptable);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue