/// <summary> /// 默认取第1个转换为连接字符串 /// </summary> /// <param name="amqpConfig">AMQP配置信息</param> /// <param name="symmetricalEncryption">加密</param> /// <returns>连接字符串</returns> public static string ToFristConnectionString(this AmqpConfigInfo amqpConfig, ISymmetricalEncryption symmetricalEncryption = null) { if (amqpConfig == null || amqpConfig.Amqp.IsNullOrLength0()) { return(null); } var amqp = amqpConfig.Amqp[0]; if (amqp == null) { return(null); } string connString = null; if (amqp.ConnectionEncrypt) { symmetricalEncryption = SymmetricalEncryptionUtil.GetSymmetricalEncryption(symmetricalEncryption); connString = symmetricalEncryption.Decrypt(amqp.ConnectionString); } else { connString = amqp.ConnectionString; } return(AmqpConfigUtil.GetConnectionString(connString)); }
/// <summary> /// 构造方法 /// </summary> /// <param name="symmetricalEncryption">加密</param> public ConnectionFactoryBase(ISymmetricalEncryption symmetricalEncryption = null) { if (symmetricalEncryption == null) { this.symmetricalEncryption = new DES(); } else { this.symmetricalEncryption = symmetricalEncryption; } }
/// <summary> /// 构造方法 /// </summary> /// <param name="symmetricalEncryption">加密</param> /// <param name="config">配置</param> public ConnectionConfigFactoryBase(ISymmetricalEncryption symmetricalEncryption = null, IConfiguration config = null) : base(symmetricalEncryption) { if (config == null) { config = App.CurrConfig; if (config == null) { throw new ArgumentNullException("未注入配置对象,请在构造里传入或者设置App.CurrConfig"); } } this.config = config; }
/// <summary> /// 构造方法 /// </summary> /// <param name="symmetricalEncryption">加密</param> /// <param name="appConfig">应用配置</param> public ConnectionAppConfigFactoryBase(ISymmetricalEncryption symmetricalEncryption = null, IAppConfiguration appConfig = null) : base(symmetricalEncryption) { if (appConfig == null) { appConfig = PlatformTool.AppConfig; if (appConfig == null) { throw new ArgumentNullException("未注入应用配置对象,请在构造里传入或者设置PlatformTool.AppConfig"); } } this.appConfig = appConfig; }
/// <summary> /// 构造方法 /// </summary> /// <param name="symmetricalEncryption">加密</param> /// <param name="appConfig">应用配置</param> public RabbitConnectionFactory(ISymmetricalEncryption symmetricalEncryption = null, IAppConfiguration appConfig = null) : base(symmetricalEncryption, appConfig) { }
/// <summary> /// 默认取第1个转换为AMQP连接信息 /// </summary> /// <param name="amqpConfig">AMQP配置信息</param> /// <param name="connectionStringParse">连接字符串解析</param> /// <param name="symmetricalEncryption">加密</param> /// <returns>AMQP连接信息</returns> public static AmqpConnectionInfo ToFristAmqpConnectionInfo(this AmqpConfigInfo amqpConfig, IConnectionStringParse <AmqpConnectionInfo> connectionStringParse = null, ISymmetricalEncryption symmetricalEncryption = null) { if (amqpConfig == null || amqpConfig.Amqp.IsNullOrLength0()) { return(null); } if (connectionStringParse == null) { connectionStringParse = AmqpConnectionUtil.DefaultConnectionStringParse; } var amqp = amqpConfig.Amqp[0]; if (amqp == null) { return(null); } string connString = null; if (amqp.ConnectionEncrypt) { symmetricalEncryption = SymmetricalEncryptionUtil.GetSymmetricalEncryption(symmetricalEncryption); connString = symmetricalEncryption.Decrypt(amqp.ConnectionString); } else { connString = amqp.ConnectionString; } return(connectionStringParse.Parse(connString)); }
/// <summary> /// 转换为AMQP连接信息 /// </summary> /// <param name="amqpConfig">AMQP配置信息</param> /// <param name="hostId">主机ID</param> /// <param name="connectionStringParse">连接字符串解析</param> /// <param name="symmetricalEncryption">加密</param> /// <returns>AMQP连接信息</returns> public static AmqpConnectionInfo ToAmqpConnectionInfo(this AmqpConfigInfo amqpConfig, string hostId, IConnectionStringParse <AmqpConnectionInfo> connectionStringParse = null, ISymmetricalEncryption symmetricalEncryption = null) { if (amqpConfig == null || string.IsNullOrWhiteSpace(hostId) || amqpConfig.Amqp.IsNullOrLength0()) { return(null); } if (connectionStringParse == null) { connectionStringParse = AmqpConnectionUtil.DefaultConnectionStringParse; } var amqp = amqpConfig.Amqp.Where(p => p.HostId == hostId).FirstOrDefault(); if (amqp == null) { return(null); } string connString = null; if (amqp.ConnectionEncrypt) { symmetricalEncryption = SymmetricalEncryptionUtil.GetSymmetricalEncryption(symmetricalEncryption); connString = symmetricalEncryption.Decrypt(amqp.ConnectionString); } else { connString = amqp.ConnectionString; } return(connectionStringParse.Parse(connString)); }
/// <summary> /// 将AMQP连接转换为主机ID /// </summary> /// <param name="amqpConfig">AMQP配置信息</param> /// <param name="amqpConnection">AMQP连接</param> /// <param name="connectionStringParse">连接字符串解析</param> /// <param name="symmetricalEncryption">加密</param> /// <returns>主机ID</returns> public static string ToHostId(this AmqpConfigInfo amqpConfig, AmqpConnectionInfo amqpConnection, IConnectionStringParse <AmqpConnectionInfo> connectionStringParse = null, ISymmetricalEncryption symmetricalEncryption = null) { string hostId; ToExchanges(amqpConfig, amqpConnection, out hostId, connectionStringParse, symmetricalEncryption); return(hostId); }
/// <summary> /// 将AMQP连接转换为交换机信息数组 /// </summary> /// <param name="amqpConfig">AMQP配置信息</param> /// <param name="amqpConnection">AMQP连接</param> /// <param name="hostId">主机ID</param> /// <param name="connectionStringParse">连接字符串解析</param> /// <param name="symmetricalEncryption">加密</param> /// <returns>交换机信息数组</returns> public static ExchangeInfo[] ToExchanges(this AmqpConfigInfo amqpConfig, AmqpConnectionInfo amqpConnection, out string hostId, IConnectionStringParse <AmqpConnectionInfo> connectionStringParse = null, ISymmetricalEncryption symmetricalEncryption = null) { hostId = null; if (amqpConfig == null || amqpConfig.Amqp.IsNullOrLength0() || amqpConnection == null || string.IsNullOrWhiteSpace(amqpConnection.VirtualPath)) { return(null); } if (connectionStringParse == null) { connectionStringParse = AmqpConnectionUtil.DefaultConnectionStringParse; } symmetricalEncryption = SymmetricalEncryptionUtil.GetSymmetricalEncryption(symmetricalEncryption); foreach (var r in amqpConfig.Amqp) { if (string.IsNullOrWhiteSpace(r.ConnectionString)) { continue; } string connString = r.ConnectionEncrypt ? symmetricalEncryption.Decrypt(r.ConnectionString) : r.ConnectionString; var conn = connectionStringParse.Parse(connString); if (conn.Host.Equals(amqpConnection.Host) && conn.Port == amqpConnection.Port && conn.VirtualPath.Equals(amqpConnection.VirtualPath)) { hostId = r.HostId; return(r.Exchanges); } } return(null); }
/// <summary> /// 获取加密,如果传入为空,则返回默认加密 /// </summary> /// <param name="symmetricalEncryption">加密</param> /// <returns>加密</returns> public static ISymmetricalEncryption GetSymmetricalEncryption(ISymmetricalEncryption symmetricalEncryption = null) { return(symmetricalEncryption == null ? DefaultSymmetricalEncryption : symmetricalEncryption); }
/// <summary> /// 构造方法 /// </summary> /// <param name="symmetricalEncryption">加密</param> /// <param name="config">配置</param> public AmqpConnectionFactoryBase(ISymmetricalEncryption symmetricalEncryption = null, IConfiguration config = null) : base(symmetricalEncryption, config) { }
/// <summary> /// 构造方法 /// </summary> /// <param name="symmetricalEncryption">加密</param> /// <param name="appConfig">应用配置</param> /// <param name="amqpConfigReader">配置读取</param> public RabbitConnectionFactory(ISymmetricalEncryption symmetricalEncryption = null, IAppConfiguration appConfig = null, IAmqpConfigReader amqpConfigReader = null) : base(symmetricalEncryption, appConfig) { this.amqpConfigReader = AmqpUtil.GetConfigReader(amqpConfigReader); }
/// <summary> /// 构造方法 /// </summary> /// <param name="symmetricalEncryption">加密</param> /// <param name="appConfig">应用配置</param> public MessageQueueConnectionFactoryBase(ISymmetricalEncryption symmetricalEncryption = null, IAppConfiguration appConfig = null) : base(symmetricalEncryption, appConfig) { }
/// <summary> /// 构造方法 /// </summary> /// <param name="amqpConfigReader">AMQP配置读取</param> /// <param name="symmetricalEncryption">加密</param> public RabbitConnection(IAmqpConfigReader amqpConfigReader = null, ISymmetricalEncryption symmetricalEncryption = null) : base(amqpConfigReader, new RabbitConnectionStringParse(), symmetricalEncryption) { }