mirror of
https://github.com/steveiliop56/tinyauth.git
synced 2025-10-28 20:55:42 +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