Ejemplo n.º 1
0
        /// <summary>
        /// Initializes a security token service based on the supplied
        /// <paramref name="configuration"/>
        /// </summary>
        /// <param name="configuration">The message queue configuration</param>
        /// <returns>Returns a task whose result is the initialized security token service</returns>
        public async Task <ISecurityTokenService> InitSecurityTokenService(SecurityTokensElement configuration)
        {
            var myConfig = configuration ?? new SecurityTokensElement();
            var provider = GetProvider(myConfig.Provider);

            if (provider == null)
            {
                await _diagnosticService.EmitAsync(
                    new DiagnosticEventBuilder(this, DiagnosticEventType.ConfigurationDefault)
                {
                    Detail = "Message journal disabled"
                }.Build());

                return(null);
            }

            var securityTokenService = await provider.CreateSecurityTokenService(myConfig);

            await _diagnosticService.EmitAsync(
                new DiagnosticEventBuilder(this, DiagnosticEventType.ComponentInitialization)
            {
                Detail = $"Security token service {securityTokenService?.GetType().FullName} initialized"
            }.Build());

            return(securityTokenService);
        }
Ejemplo n.º 2
0
        /// <inheritdoc />
        public Task <ISecurityTokenService> CreateSecurityTokenService(SecurityTokensElement configuration)
        {
            var signingKey         = (HexEncodedSecurityKey)configuration.GetString("signingKey");
            var fallbackSigningKey = (HexEncodedSecurityKey)configuration.GetString("fallbackSigningKey");
            var defaultTtl         = configuration.GetTimeSpan("defaultTtl").GetValueOrDefault();
            var options            = new JwtSecurityTokenServiceOptions
            {
                SigningKey         = signingKey,
                FallbackSigningKey = fallbackSigningKey,
                DefaultTTL         = defaultTtl
            };
            var securityTokenService = new JwtSecurityTokenService(options);

            return(Task.FromResult <ISecurityTokenService>(securityTokenService));
        }