mirror of
				https://github.com/steveiliop56/tinyauth.git
				synced 2025-10-29 21:25:43 +00:00 
			
		
		
		
	feat: add configurable search filter
This commit is contained in:
		| @@ -152,6 +152,7 @@ var rootCmd = &cobra.Command{ | |||||||
| 				BindPassword: config.LdapBindPassword, | 				BindPassword: config.LdapBindPassword, | ||||||
| 				BaseDN:       config.LdapBaseDN, | 				BaseDN:       config.LdapBaseDN, | ||||||
| 				Insecure:     config.LdapInsecure, | 				Insecure:     config.LdapInsecure, | ||||||
|  | 				SearchFilter: config.LdapSearchFilter, | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
| 			// Create LDAP service | 			// Create LDAP service | ||||||
| @@ -249,6 +250,7 @@ func init() { | |||||||
| 	rootCmd.Flags().String("ldap-bind-password", "", "LDAP bind password.") | 	rootCmd.Flags().String("ldap-bind-password", "", "LDAP bind password.") | ||||||
| 	rootCmd.Flags().String("ldap-base-dn", "", "LDAP base DN (e.g. dc=example,dc=com).") | 	rootCmd.Flags().String("ldap-base-dn", "", "LDAP base DN (e.g. dc=example,dc=com).") | ||||||
| 	rootCmd.Flags().Bool("ldap-insecure", false, "Skip certificate verification for the LDAP server.") | 	rootCmd.Flags().Bool("ldap-insecure", false, "Skip certificate verification for the LDAP server.") | ||||||
|  | 	rootCmd.Flags().String("ldap-search-filter", "(uid=%s)", "LDAP search filter for user lookup.") | ||||||
|  |  | ||||||
| 	// Bind flags to environment | 	// Bind flags to environment | ||||||
| 	viper.BindEnv("port", "PORT") | 	viper.BindEnv("port", "PORT") | ||||||
| @@ -289,6 +291,7 @@ func init() { | |||||||
| 	viper.BindEnv("ldap-bind-password", "LDAP_BIND_PASSWORD") | 	viper.BindEnv("ldap-bind-password", "LDAP_BIND_PASSWORD") | ||||||
| 	viper.BindEnv("ldap-base-dn", "LDAP_BASE_DN") | 	viper.BindEnv("ldap-base-dn", "LDAP_BASE_DN") | ||||||
| 	viper.BindEnv("ldap-insecure", "LDAP_INSECURE") | 	viper.BindEnv("ldap-insecure", "LDAP_INSECURE") | ||||||
|  | 	viper.BindEnv("ldap-search-filter", "LDAP_SEARCH_FILTER") | ||||||
|  |  | ||||||
| 	// Bind flags to viper | 	// Bind flags to viper | ||||||
| 	viper.BindPFlags(rootCmd.Flags()) | 	viper.BindPFlags(rootCmd.Flags()) | ||||||
|   | |||||||
| @@ -41,7 +41,7 @@ func (l *LDAP) Search(username string) (string, error) { | |||||||
| 	searchRequest := ldapgo.NewSearchRequest( | 	searchRequest := ldapgo.NewSearchRequest( | ||||||
| 		l.BaseDN, | 		l.BaseDN, | ||||||
| 		ldapgo.ScopeWholeSubtree, ldapgo.NeverDerefAliases, 0, 0, false, | 		ldapgo.ScopeWholeSubtree, ldapgo.NeverDerefAliases, 0, 0, false, | ||||||
| 		fmt.Sprintf("(uid=%s)", username), | 		fmt.Sprintf(l.Config.SearchFilter, username), | ||||||
| 		[]string{"dn"}, | 		[]string{"dn"}, | ||||||
| 		nil, | 		nil, | ||||||
| 	) | 	) | ||||||
|   | |||||||
| @@ -41,6 +41,7 @@ type Config struct { | |||||||
| 	LdapBindPassword        string `mapstructure:"ldap-bind-password"` | 	LdapBindPassword        string `mapstructure:"ldap-bind-password"` | ||||||
| 	LdapBaseDN              string `mapstructure:"ldap-base-dn"` | 	LdapBaseDN              string `mapstructure:"ldap-base-dn"` | ||||||
| 	LdapInsecure            bool   `mapstructure:"ldap-insecure"` | 	LdapInsecure            bool   `mapstructure:"ldap-insecure"` | ||||||
|  | 	LdapSearchFilter        string `mapstructure:"ldap-search-filter"` | ||||||
| } | } | ||||||
|  |  | ||||||
| // Server configuration | // Server configuration | ||||||
| @@ -135,4 +136,5 @@ type LdapConfig struct { | |||||||
| 	BindPassword string | 	BindPassword string | ||||||
| 	BaseDN       string | 	BaseDN       string | ||||||
| 	Insecure     bool | 	Insecure     bool | ||||||
|  | 	SearchFilter string | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Stavros
					Stavros