12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- package encryption
- import (
- "strings"
- "github.com/langgenius/dify-plugin-daemon/internal/types/entities/plugin_entities"
- )
- func MaskConfigCredentials(
- credentials map[string]any,
- provider_config []plugin_entities.ProviderConfig,
- ) map[string]any {
- /*
- Mask credentials based on provider config
- */
- configsMap := make(map[string]plugin_entities.ProviderConfig)
- for _, config := range provider_config {
- configsMap[config.Name] = config
- }
- copiedCredentials := make(map[string]any)
- for key, value := range credentials {
- if config, ok := configsMap[key]; ok {
- if config.Type == plugin_entities.CONFIG_TYPE_SECRET_INPUT {
- if originalValue, ok := value.(string); ok {
- if len(originalValue) > 6 {
- copiedCredentials[key] = originalValue[:2] +
- strings.Repeat("*", len(originalValue)-4) +
- originalValue[len(originalValue)-2:]
- } else {
- copiedCredentials[key] = strings.Repeat("*", len(originalValue))
- }
- } else {
- copiedCredentials[key] = value
- }
- } else {
- copiedCredentials[key] = value
- }
- } else {
- copiedCredentials[key] = value
- }
- }
- return copiedCredentials
- }
|