public ClientCertificateManager GetClientCertificateManager(string clientId) { _logger.LogDebug($"获取客户端管理器:{clientId??""}"); var cm = _cache.GetOrAdd(clientId, (id) => { var client = _options.ClientList.FirstOrDefault(c => c.ClientID == id); if (client == null) { return(null); } if (String.IsNullOrEmpty(client.AuthUrl)) { client.AuthUrl = _options.DefaultUrl; } TokenCacheManager cacheManager = null; if (client.TokenCacheManager != null) { cacheManager = client.TokenCacheManager(_serviceProvider, clientId); } else { cacheManager = TokenCacheManager.MemoryCacheFactory(_serviceProvider, clientId); } return(new ClientCertificateManager( client, client.Processor ?? CertificateProcessor.OIDC, client.TokenSetter ?? SetTokenProcessor.Bearer, client.ResponseChecker ?? CheckResponseProcessor.NormalChecker, cacheManager, _loggerFactory.CreateLogger <ClientCertificateManager>(), _httpFactory)); }); if (cm == null) { _logger.LogError($"客户端未配置:{clientId}"); throw new InvalidOperationException($"客户端未配置:{clientId}"); } else { _logGetClient(_logger, clientId, cm.Client?.ClientName, cm.Client?.AuthUrl, null); } return(cm); }
public ClientCertificateManager( ClientCertificateInfo client, CertificateProcessor processor, SetTokenProcessor tokenSetter, CheckResponseProcessor responseChecker, TokenCacheManager cacheManager, ILogger <ClientCertificateManager> logger, IHttpClientFactory clientFactory) { Client = client; _processor = processor; _tokenSetter = tokenSetter; _responseChecker = responseChecker; _cacheManager = cacheManager; _clientFactory = clientFactory; _logger = logger; }