/// <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); }
/// <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)); }