public ClientResolver( [NotNull] ILog log, [NotNull] IClientsSessionsRepository sessionService, [NotNull] IMemoryCache cache, [NotNull] IOAuthTokenValidator authTokenValidator) { _log = log ?? throw new ArgumentNullException(nameof(log)); _sessionService = sessionService ?? throw new ArgumentNullException(nameof(sessionService)); _cache = cache ?? throw new ArgumentNullException(nameof(cache)); _authTokenValidator = authTokenValidator; }
public AuthenticationProvider(IOAuthTokenValidator oAuthTokenValidator, IClaimsIdentityProvider claimsIdentityProvider, IConfigurationRoot config) { _oAuthTokenValidator = oAuthTokenValidator; _claimsIdentityProvider = claimsIdentityProvider; _expectedUseSandboxValue = new Lazy <bool?>( () => config.GetSection(ExpectedUseSandboxValue).Value == null ? (bool?)null : Convert.ToBoolean(config.GetSection(ExpectedUseSandboxValue).Value)); }
/// <summary> /// Initializes a new instance of the <see cref="CachingOAuthTokenValidatorDecorator"/> class. /// </summary> /// <param name="next">The decorated implementation.</param> /// <param name="cacheProvider">The cache provider.</param> /// <param name="configValueProvider">The configuration value provider.</param> public CachingOAuthTokenValidatorDecorator( IOAuthTokenValidator next, ICacheProvider cacheProvider, IConfigValueProvider configValueProvider) { _next = next; _cacheProvider = cacheProvider; // Lazy initialization _bearerTokenTimeoutMinutes = new Lazy <int>( () => Convert.ToInt32(configValueProvider.GetValue(ConfigBearerTokenTimeoutMinutes) ?? "30")); }
public OAuthAuthenticationProvider( IOAuthTokenValidator oauthTokenValidator, IApiKeyContextProvider apiKeyContextProvider, IClaimsIdentityProvider claimsIdentityProvider, IConfigValueProvider configValueProvider) { OAuthTokenValidator = oauthTokenValidator; ApiKeyContextProvider = apiKeyContextProvider; ClaimsIdentityProvider = claimsIdentityProvider; _expectedUseSandboxValue = new Lazy <bool?>( () => configValueProvider.GetValue(ExpectedUseSandboxValue) == null ? (bool?)null : Convert.ToBoolean(configValueProvider.GetValue(ExpectedUseSandboxValue))); }
/// <summary> /// Initializes a new instance of the <see cref="CachingOAuthTokenValidatorDecorator"/> class. /// </summary> /// <param name="next">The decorated implementation.</param> /// <param name="cacheProvider">The cache provider.</param> /// <param name="configuration"></param> /// <param name="apiSettings"></param> /// <param name="instanceIdContextProvider"></param> public CachingOAuthTokenValidatorDecorator( IOAuthTokenValidator next, ICacheProvider cacheProvider, IConfigurationRoot configuration, ApiSettings apiSettings, IInstanceIdContextProvider instanceIdContextProvider = null) { _apiSettings = apiSettings; _instanceIdContextProvider = instanceIdContextProvider; _next = next; _cacheProvider = cacheProvider; // Lazy initialization _bearerTokenTimeoutMinutes = new Lazy <int>( () => int.TryParse(configuration.GetSection("BearerTokenTimeoutMinutes").Value, out int bearerTokenTimeoutMinutes) ? bearerTokenTimeoutMinutes : 30); }
protected override void Arrange() { // Initialize dependencies // Create details for an invalid token (no API key assigned) _suppliedInvalidClientDetails = new ApiClientDetails(); _decoratedValidator = Stub <IOAuthTokenValidator>(); _decoratedValidator .Stub(x => x.GetClientDetailsForTokenAsync(_suppliedInvalidApiToken)) .Return(Task.FromResult(_suppliedInvalidClientDetails)); _cacheProvider = Stub <ICacheProvider>(); // Mock config file to return duration _configValueProvider = Stub <IConfigValueProvider>(); _configValueProvider.Stub(x => x.GetValue(Arg <string> .Is.Anything)) .Return(_suppliedDurationMinutes.ToString()); }
protected override void Arrange() { // Initialize dependencies _suppliedClientDetails = new ApiClientDetails { ApiKey = "resolvedApiKey" }; _decoratedValidator = Stub <IOAuthTokenValidator>(); A.CallTo(() => _decoratedValidator.GetClientDetailsForTokenAsync(_suppliedApiToken)) .Returns(Task.FromResult(_suppliedClientDetails)); _cacheProvider = Stub <ICacheProvider>(); _apiSettings = new ApiSettings { Engine = ApiConfigurationConstants.SqlServer, Mode = ApiConfigurationConstants.Sandbox }; _configuration = Stub <IConfigurationRoot>(); A.CallTo(() => _configuration.GetSection("BearerTokenTimeoutMinutes").Value) .Returns(_suppliedDurationMinutes.ToString()); }
protected override void Arrange() { // Initialize dependencies _suppliedCachedClientDetails = new ApiClientDetails(); _decoratedValidator = Stub <IOAuthTokenValidator>(); // Fake the cache to return the details _cacheProvider = Stub <ICacheProvider>(); object outobject = _suppliedCachedClientDetails; A.CallTo(() => _cacheProvider.TryGetCachedObject(A <string> ._, out outobject)).Returns(true); // Mock config file to return duration _apiSettings = new ApiSettings { Engine = ApiConfigurationConstants.SqlServer, Mode = ApiConfigurationConstants.Sandbox }; _configuration = Stub <IConfigurationRoot>(); A.CallTo(() => _configuration.GetSection("BearerTokenTimeoutMinutes").Value) .Returns(_suppliedDurationMinutes.ToString()); }
public static void Initialize( IOAuthTokenValidator oAuthTokenValidator = null, IApiKeyContextProvider apiKeyContextProvider = null, IClaimsIdentityProvider claimsIdentityProvider = null, IConfigValueProvider configValueProvider = null) { _container = new WindsorContainerEx(); //arrange var tokenValidator = oAuthTokenValidator ?? MockRepository.GenerateStub <IOAuthTokenValidator>(); var contextProvider = apiKeyContextProvider ?? MockRepository.GenerateStub <IApiKeyContextProvider>(); var identityProvider = claimsIdentityProvider ?? MockRepository.GenerateStub <IClaimsIdentityProvider>(); var configProvider = configValueProvider ?? MockRepository.GenerateStub <IConfigValueProvider>(); _container.Register( Component.For <IOAuthTokenValidator>() .Instance(tokenValidator)); _container.Register( Component.For <IApiKeyContextProvider>() .Instance(contextProvider)); _container.Register( Component.For <IClaimsIdentityProvider>() .Instance(identityProvider)); _container.Register( Component.For <IConfigValueProvider>() .Instance(configProvider)); _container.Register( Component.For <IAuthenticationProvider>() .ImplementedBy <OAuthAuthenticationProvider>()); // Web API Dependency Injection _container.Register( Component.For <IDependencyResolver>() .Instance(new WindsorDependencyResolver(_container))); }
protected override void Arrange() { // Initialize dependencies // Create details for an invalid token (no API key assigned) _suppliedInvalidClientDetails = new ApiClientDetails(); _decoratedValidator = Stub <IOAuthTokenValidator>(); A.CallTo(() => _decoratedValidator.GetClientDetailsForTokenAsync(_suppliedInvalidApiToken)) .Returns(Task.FromResult(_suppliedInvalidClientDetails)); _cacheProvider = Stub <ICacheProvider>(); // Mock config file to return duration _apiSettings = new ApiSettings { Engine = ApiConfigurationConstants.SqlServer, Mode = ApiConfigurationConstants.Sandbox }; _configuration = Stub <IConfigurationRoot>(); A.CallTo(() => _configuration.GetSection("BearerTokenTimeoutMinutes").Value) .Returns(_suppliedDurationMinutes.ToString()); }
protected override void Arrange() { // Initialize dependencies _suppliedCachedClientDetails = new ApiClientDetails(); _decoratedValidator = Stub <IOAuthTokenValidator>(); // Fake the cache to return the details _cacheProvider = Stub <ICacheProvider>(); _cacheProvider.Stub( x => x.TryGetCachedObject( Arg <string> .Is.Anything, out Arg <object> .Out(_suppliedCachedClientDetails) .Dummy)) .Return(true); // Mock config file to return duration _configValueProvider = Stub <IConfigValueProvider>(); _configValueProvider.Stub(x => x.GetValue(Arg <string> .Is.Anything)) .Return(_suppliedDurationMinutes.ToString()); }
/// <summary> /// DI Constructor /// </summary> /// <param name="oAuthTokenValidator">OAuthTokenValidator instance</param> /// <param name="configuration">OAuthTokenValidatorConfiguration instance</param> public ValidationHandler(IOAuthTokenValidator oAuthTokenValidator, IOAuthTokenValidatorConfiguration configuration) { _oAuthTokenValidator = oAuthTokenValidator; _oAuthTokenValidatorConfiguration = configuration; }