Documentation
¶
Index ¶
- type PasswordSource
- type Resolver
- func (r *Resolver) DecryptProxyPassword(proxy *asset_entity.ProxyConfig) *asset_entity.ProxyConfig
- func (r *Resolver) DialAssetSSH(ctx context.Context, assetID int64) (*ssh.Client, []io.Closer, error)
- func (r *Resolver) ResolveDatabasePassword(ctx context.Context, cfg *asset_entity.DatabaseConfig) (string, error)
- func (r *Resolver) ResolveJumpHosts(ctx context.Context, jumpHostID int64, maxDepth int) ([]ssh_svc.JumpHostEntry, error)
- func (r *Resolver) ResolveMongoDBPassword(ctx context.Context, cfg *asset_entity.MongoDBConfig) (string, error)
- func (r *Resolver) ResolvePasswordGeneric(ctx context.Context, src PasswordSource) (string, error)
- func (r *Resolver) ResolveProxyChain(ctx context.Context, chain *asset_entity.ProxyChainConfig, maxDepth int) ([]proxychain.Layer, error)
- func (r *Resolver) ResolveRedisPassword(ctx context.Context, cfg *asset_entity.RedisConfig) (string, error)
- func (r *Resolver) ResolveSSHConnectConfig(ctx context.Context, assetID int64) (*asset_entity.SSHConfig, string, string, string, []ssh_svc.JumpHostEntry, ...)
- func (r *Resolver) ResolveSSHCredentials(ctx context.Context, cfg *asset_entity.SSHConfig) (password, key, passphrase string, err error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type PasswordSource ¶ added in v1.2.0
PasswordSource 密码来源接口。
type Resolver ¶
type Resolver struct{}
Resolver 统一凭据解析服务
func (*Resolver) DecryptProxyPassword ¶
func (r *Resolver) DecryptProxyPassword(proxy *asset_entity.ProxyConfig) *asset_entity.ProxyConfig
DecryptProxyPassword 解密代理配置中的密码,返回新的 ProxyConfig(不修改原始对象)
func (*Resolver) DialAssetSSH ¶ added in v1.3.0
func (r *Resolver) DialAssetSSH(ctx context.Context, assetID int64) (*ssh.Client, []io.Closer, error)
DialAssetSSH 一站式解析资产并建立 SSH 连接,自动处理代理密码解密、跳板机链。 除返回的 *ssh.Client 外,调用方还须负责关闭返回的所有额外 closer(跳板机链的 中间连接等);否则会泄漏连接。失败时返回的 closer 列表为 nil。
func (*Resolver) ResolveDatabasePassword ¶
func (r *Resolver) ResolveDatabasePassword(ctx context.Context, cfg *asset_entity.DatabaseConfig) (string, error)
ResolveDatabasePassword 解密 DatabaseConfig 中的密码 优先使用统一凭证,向后兼容内联密码
func (*Resolver) ResolveJumpHosts ¶
func (r *Resolver) ResolveJumpHosts(ctx context.Context, jumpHostID int64, maxDepth int) ([]ssh_svc.JumpHostEntry, error)
ResolveJumpHosts 递归解析跳板机链(含凭据解密),返回从第一跳到最后一跳的顺序
func (*Resolver) ResolveMongoDBPassword ¶ added in v1.2.0
func (r *Resolver) ResolveMongoDBPassword(ctx context.Context, cfg *asset_entity.MongoDBConfig) (string, error)
ResolveMongoDBPassword 解密 MongoDBConfig 中的密码 优先使用统一凭证,向后兼容内联密码
func (*Resolver) ResolvePasswordGeneric ¶ added in v1.2.0
ResolvePasswordGeneric 通用密码解密。 仅供 assettype handler 使用。现有 ResolveXxxPassword 方法保持不变。
func (*Resolver) ResolveProxyChain ¶ added in v1.11.0
func (r *Resolver) ResolveProxyChain(ctx context.Context, chain *asset_entity.ProxyChainConfig, maxDepth int) ([]proxychain.Layer, error)
func (*Resolver) ResolveRedisPassword ¶
func (r *Resolver) ResolveRedisPassword(ctx context.Context, cfg *asset_entity.RedisConfig) (string, error)
ResolveRedisPassword 解密 RedisConfig 中的密码 优先使用统一凭证,向后兼容内联密码
func (*Resolver) ResolveSSHConnectConfig ¶
func (r *Resolver) ResolveSSHConnectConfig(ctx context.Context, assetID int64) (*asset_entity.SSHConfig, string, string, string, []ssh_svc.JumpHostEntry, []proxychain.Layer, error)
ResolveSSHConnectConfig 从资产 ID 解析完整的 SSH 连接信息 返回 SSHConfig、明文密码、明文密钥、passphrase、跳板机链
func (*Resolver) ResolveSSHCredentials ¶
func (r *Resolver) ResolveSSHCredentials(ctx context.Context, cfg *asset_entity.SSHConfig) (password, key, passphrase string, err error)
ResolveSSHCredentials 从 SSHConfig 解析明文密码/密钥/passphrase 优先使用统一凭证,向后兼容内联密码和本地密钥文件