fixed authentication. at least locally. need to test remote.

This commit is contained in:
kay.one 2013-05-22 19:10:02 -07:00
commit e538593c61
4 changed files with 55 additions and 6 deletions

View file

@ -0,0 +1,39 @@
using Nancy;
using Nancy.Authentication.Basic;
using Nancy.Bootstrapper;
using NzbDrone.Common.Model;
namespace NzbDrone.Api.Authentication
{
public interface IEnableBasicAuthInNancy
{
void Register(IPipelines pipelines);
}
public class EnableBasicAuthInNancy : IEnableBasicAuthInNancy
{
private readonly IAuthenticationService _authenticationService;
public EnableBasicAuthInNancy(IAuthenticationService authenticationService)
{
_authenticationService = authenticationService;
}
public void Register(IPipelines pipelines)
{
pipelines.EnableBasicAuthentication(new BasicAuthenticationConfiguration(_authenticationService, "NzbDrone"));
pipelines.BeforeRequest.AddItemToEndOfPipeline(RequiresAuthentication);
}
private Response RequiresAuthentication(NancyContext context)
{
Response response = null;
if (context.CurrentUser == null && _authenticationService.AuthenticationType != AuthenticationType.Anonymous)
{
response = new Response { StatusCode = HttpStatusCode.Unauthorized };
}
return response;
}
}
}