Ejemplo n.º 1
0
 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)));
        }
Ejemplo n.º 5
0
        /// <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);
        }
Ejemplo n.º 6
0
            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());
            }
Ejemplo n.º 7
0
            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());
            }
Ejemplo n.º 8
0
            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());
            }
Ejemplo n.º 9
0
        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)));
        }
Ejemplo n.º 10
0
            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());
            }
Ejemplo n.º 11
0
            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());
            }
Ejemplo n.º 12
0
 /// <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;
 }