in pkg/providers/apisix/translation/apisix_consumer.go [24:74]
func (t *translator) TranslateApisixConsumerV2(ac *configv2.ApisixConsumer) (*apisixv1.Consumer, error) {
// As the CRD schema ensures that only one authN can be configured,
// so here the order is no matter.
plugins := make(apisixv1.Plugins)
if ac.Spec.AuthParameter.KeyAuth != nil {
cfg, err := t.translateConsumerKeyAuthPluginV2(ac.Namespace, ac.Spec.AuthParameter.KeyAuth)
if err != nil {
return nil, fmt.Errorf("invalid key auth config: %s", err)
}
plugins["key-auth"] = cfg
} else if ac.Spec.AuthParameter.BasicAuth != nil {
cfg, err := t.translateConsumerBasicAuthPluginV2(ac.Namespace, ac.Spec.AuthParameter.BasicAuth)
if err != nil {
return nil, fmt.Errorf("invalid basic auth config: %s", err)
}
plugins["basic-auth"] = cfg
} else if ac.Spec.AuthParameter.JwtAuth != nil {
cfg, err := t.translateConsumerJwtAuthPluginV2(ac.Namespace, ac.Spec.AuthParameter.JwtAuth)
if err != nil {
return nil, fmt.Errorf("invalid jwt auth config: %s", err)
}
plugins["jwt-auth"] = cfg
} else if ac.Spec.AuthParameter.WolfRBAC != nil {
cfg, err := t.translateConsumerWolfRBACPluginV2(ac.Namespace, ac.Spec.AuthParameter.WolfRBAC)
if err != nil {
return nil, fmt.Errorf("invalid wolf rbac config: %s", err)
}
plugins["wolf-rbac"] = cfg
} else if ac.Spec.AuthParameter.HMACAuth != nil {
cfg, err := t.translateConsumerHMACAuthPluginV2(ac.Namespace, ac.Spec.AuthParameter.HMACAuth)
if err != nil {
return nil, fmt.Errorf("invaild hmac auth config: %s", err)
}
plugins["hmac-auth"] = cfg
} else if ac.Spec.AuthParameter.LDAPAuth != nil {
cfg, err := t.translateConsumerLDAPAuthPluginV2(ac.Namespace, ac.Spec.AuthParameter.LDAPAuth)
if err != nil {
return nil, fmt.Errorf("invalid ldap auth config: %s", err)
}
plugins["ldap-auth"] = cfg
}
consumer := apisixv1.NewDefaultConsumer()
for k, v := range ac.ObjectMeta.Labels {
consumer.Labels[k] = v
}
consumer.Username = apisixv1.ComposeConsumerName(ac.Namespace, ac.Name)
consumer.Plugins = plugins
return consumer, nil
}