auth.go 539 B

123456789101112131415161718192021222324
  1. package gateway
  2. import (
  3. "slices"
  4. "realtime-gateway/internal/config"
  5. "realtime-gateway/internal/model"
  6. )
  7. func authorize(cfg config.AuthConfig, role model.Role, token string) bool {
  8. switch role {
  9. case model.RoleProducer:
  10. return slices.Contains(cfg.ProducerTokens, token)
  11. case model.RoleController:
  12. return slices.Contains(cfg.ControllerTokens, token)
  13. case model.RoleConsumer:
  14. if cfg.AllowAnonymousConsumers && token == "" {
  15. return true
  16. }
  17. return slices.Contains(cfg.ConsumerTokens, token)
  18. default:
  19. return false
  20. }
  21. }