public void ShouldPositivelyAuthenticateValidRequest() { var repository = new MockRepository(); var basicAuthenticationExtractor = repository.StrictMock<BasicAuthenticationCredentialsExtractor>(null, null); Message requestMessage = CreateAuthorizedRequestMessage(); var securityContextFactory = repository.Stub<ServiceSecurityContextFactory>(null); Expect.Call(securityContextFactory.Create(null)).IgnoreArguments().Return(null); var httpRequestExtractor = repository.StrictMock<AuthorizationStringExtractor>(); const string BasicAuthenticationCredentialString = "Basic SGVsbG8gQmFzZTY0"; string dummyString; Expect.Call(httpRequestExtractor.TryExtractAuthorizationHeader(requestMessage, out dummyString)).Return(true).OutRef(BasicAuthenticationCredentialString); const string UserName = "******"; const string Password = "******"; Credentials dummyCredentials = CreateDummyCredentials(UserName, Password); Expect.Call(basicAuthenticationExtractor.Extract(BasicAuthenticationCredentialString)).Return(dummyCredentials); var membershipProvider = repository.StrictMock<MembershipProvider>(); Expect.Call(membershipProvider.ValidateUser(UserName, Password)).Return(true); var manager = new BasicAuthenticationManager(basicAuthenticationExtractor, httpRequestExtractor, membershipProvider, null, securityContextFactory); repository.ReplayAll(); manager.AuthenticateRequest(requestMessage); repository.VerifyAll(); }
public static RequestInterceptor Create(string realm, MembershipProvider membershipProvider) { var basicAuthenticationCredentialsExtractor = new BasicAuthenticationCredentialsExtractor(new Base64Decoder(), new DecodedCredentialsExtractor()); var httpRequestAuthorizationExtractor = new AuthorizationStringExtractor(); var responseMessageFactory = new ResponseMessageFactory(realm); var serviceSecurityContextFactory = new ServiceSecurityContextFactory(new AuthorizationPolicyFactory()); var basicAuthenticationManager = new BasicAuthenticationManager(basicAuthenticationCredentialsExtractor, httpRequestAuthorizationExtractor, membershipProvider, responseMessageFactory, serviceSecurityContextFactory); return new BasicAuthenticationInterceptor(basicAuthenticationManager); }
public void ShouldGenerateRequestForAuthorization() { var repository = new MockRepository(); var basicAuthenticationExtractor = repository.Stub<BasicAuthenticationCredentialsExtractor>(null, null); var httpRequestExtractor = repository.Stub<AuthorizationStringExtractor>(); var membershipProvider = repository.Stub<MembershipProvider>(); var securityContextFactory = repository.Stub<ServiceSecurityContextFactory>(null); Expect.Call(securityContextFactory.Create(null)).IgnoreArguments().Return(null); var responseMessageFactory = repository.StrictMock<ResponseMessageFactory>(string.Empty); Expect.Call(responseMessageFactory.CreateInvalidAuthorizationMessage()).Return(null); var manager = new BasicAuthenticationManager(basicAuthenticationExtractor, httpRequestExtractor, membershipProvider, responseMessageFactory, securityContextFactory); repository.ReplayAll(); manager.CreateInvalidAuthenticationRequest(); repository.VerifyAll(); }
public BasicAuthenticationInterceptor(BasicAuthenticationManager manager) : base(false) { this.manager = manager; }