Files
cmr-mini/realtime-gateway/internal/gateway/auth.go

25 lines
539 B
Go

package gateway
import (
"slices"
"realtime-gateway/internal/config"
"realtime-gateway/internal/model"
)
func authorize(cfg config.AuthConfig, role model.Role, token string) bool {
switch role {
case model.RoleProducer:
return slices.Contains(cfg.ProducerTokens, token)
case model.RoleController:
return slices.Contains(cfg.ControllerTokens, token)
case model.RoleConsumer:
if cfg.AllowAnonymousConsumers && token == "" {
return true
}
return slices.Contains(cfg.ConsumerTokens, token)
default:
return false
}
}