Home / Function/ configDefault() — fiber Function Reference

configDefault() — fiber Function Reference

Architecture documentation for the configDefault() function in config.go from the fiber codebase.

Entity Profile

Dependency Diagram

graph TD
  2ad37537_a29d_ecbf_0fcd_cb581bf8f843["configDefault()"]
  01789d85_fb66_6955_8e64_00a267dc5b74["config.go"]
  2ad37537_a29d_ecbf_0fcd_cb581bf8f843 -->|defined in| 01789d85_fb66_6955_8e64_00a267dc5b74
  f1aa6348_4a4d_8681_83b0_a6601ceef6b4["parseHashedPassword()"]
  2ad37537_a29d_ecbf_0fcd_cb581bf8f843 -->|calls| f1aa6348_4a4d_8681_83b0_a6601ceef6b4
  style 2ad37537_a29d_ecbf_0fcd_cb581bf8f843 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

middleware/basicauth/config.go lines 91–160

func configDefault(config ...Config) Config {
	// Return default config if nothing provided
	if len(config) < 1 {
		return ConfigDefault
	}

	// Override default config
	cfg := config[0]

	// Set default values
	if cfg.Next == nil {
		cfg.Next = ConfigDefault.Next
	}

	if cfg.Users == nil {
		cfg.Users = ConfigDefault.Users
	}

	if cfg.Realm == "" {
		cfg.Realm = ConfigDefault.Realm
	}

	switch {
	case cfg.Charset == "":
		cfg.Charset = ConfigDefault.Charset
	case utils.EqualFold(cfg.Charset, "UTF-8"):
		cfg.Charset = "UTF-8"
	default:
		panic("basicauth: charset must be UTF-8")
	}

	if cfg.HeaderLimit <= 0 {
		cfg.HeaderLimit = ConfigDefault.HeaderLimit
	}

	if cfg.Authorizer == nil {
		verifiers := make(map[string]func(string) bool, len(cfg.Users))
		for u, hpw := range cfg.Users {
			v, err := parseHashedPassword(hpw)
			if err != nil {
				panic(err)
			}
			verifiers[u] = v
		}
		cfg.Authorizer = func(user, pass string, _ fiber.Ctx) bool {
			verify, ok := verifiers[user]
			return ok && verify(pass)
		}
	}

	if cfg.Unauthorized == nil {
		cfg.Unauthorized = func(c fiber.Ctx) error {
			header := "Basic realm=" + strconv.Quote(cfg.Realm)
			if cfg.Charset != "" {
				header += ", charset=" + strconv.Quote(cfg.Charset)
			}
			c.Set(fiber.HeaderWWWAuthenticate, header)
			c.Set(fiber.HeaderCacheControl, "no-store")
			c.Set(fiber.HeaderVary, fiber.HeaderAuthorization)
			return c.SendStatus(fiber.StatusUnauthorized)
		}
	}

	if cfg.BadRequest == nil {
		cfg.BadRequest = func(c fiber.Ctx) error {
			return c.SendStatus(fiber.StatusBadRequest)
		}
	}
	return cfg
}

Domain

Subdomains

Frequently Asked Questions

What does configDefault() do?
configDefault() is a function in the fiber codebase, defined in middleware/basicauth/config.go.
Where is configDefault() defined?
configDefault() is defined in middleware/basicauth/config.go at line 91.
What does configDefault() call?
configDefault() calls 1 function(s): parseHashedPassword.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free