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
- */
- configs_map := make(map[string]plugin_entities.ProviderConfig)
- for _, config := range provider_config {
- configs_map[config.Name] = config
- }
- copied_credentials := make(map[string]any)
- for key, value := range credentials {
- if config, ok := configs_map[key]; ok {
- if config.Type == plugin_entities.CONFIG_TYPE_SECRET_INPUT {
- if original_value, ok := value.(string); ok {
- if len(original_value) > 6 {
- copied_credentials[key] = original_value[:2] +
- strings.Repeat("*", len(original_value)-4) +
- original_value[len(original_value)-2:]
- } else {
- copied_credentials[key] = strings.Repeat("*", len(original_value))
- }
- } else {
- copied_credentials[key] = value
- }
- } else {
- copied_credentials[key] = value
- }
- } else {
- copied_credentials[key] = value
- }
- }
- return copied_credentials
- }
|