configDefault is a helper function to set default values.
(config ...Config)
| 144 | |
| 145 | // configDefault is a helper function to set default values. |
| 146 | func configDefault(config ...Config) Config { |
| 147 | // Return default config if nothing provided |
| 148 | if len(config) < 1 { |
| 149 | return ConfigDefault |
| 150 | } |
| 151 | |
| 152 | // Override default config |
| 153 | cfg := config[0] |
| 154 | |
| 155 | // Set default values |
| 156 | if cfg.IdleTimeout <= 0 { |
| 157 | cfg.IdleTimeout = ConfigDefault.IdleTimeout |
| 158 | } |
| 159 | if cfg.CookieName == "" { |
| 160 | cfg.CookieName = ConfigDefault.CookieName |
| 161 | } |
| 162 | if cfg.CookieSameSite == "" { |
| 163 | cfg.CookieSameSite = ConfigDefault.CookieSameSite |
| 164 | } |
| 165 | if cfg.KeyGenerator == nil { |
| 166 | cfg.KeyGenerator = ConfigDefault.KeyGenerator |
| 167 | } |
| 168 | if cfg.ErrorHandler == nil { |
| 169 | cfg.ErrorHandler = ConfigDefault.ErrorHandler |
| 170 | } |
| 171 | // Check if Extractor is zero value (since it's a struct) |
| 172 | if cfg.Extractor.Extract == nil { |
| 173 | cfg.Extractor = ConfigDefault.Extractor |
| 174 | } |
| 175 | // Validate extractor security configurations |
| 176 | validateExtractorSecurity(&cfg) |
| 177 | |
| 178 | return cfg |
| 179 | } |
| 180 | |
| 181 | // validateExtractorSecurity checks for insecure extractor configurations |
| 182 | func validateExtractorSecurity(cfg *Config) { |