Extension de services Header Creation (existante)

Extension de services Header Creation (existante)

ℹ️
Cette rubrique fait référence à la syntaxe de configuration existante. Les passerelles d’applications sont désormais définies comme des applications Proxy. Un nouvel exemple de l’extension de services create header est présenté ici

La création d’en-têtes HTTP personnalisés est une opération courante pour les applications existantes qui traitent l’identité par le biais d’en-têtes.

CreateHeader

Dans cet exemple, l’extension de services createHeader permet d’enrichir les données d’attributs renvoyées dans les réclamation par un fournisseur d’authentification.

appgateways:
  - name: Sonar
    basePath: /

    headers:
      SM_USER: azure.name
      firstname:
        createHeader:
          funcName: CreateHeader
          file: /etc/maverics/extensions/createHeader.go

    policies:
      - location: /
        authentication:
          idps:
            - azure
        authorization:
          allowAll: true

/etc/maverics/extensions/createHeader.go

package main

import (
	"errors"
	"net/http"

	"maverics/app"
	"maverics/session"
)

func CreateHeader(
	ag *app.AppGateway,
	rw http.ResponseWriter,
	req *http.Request,
) (http.Header, error) {
	header := make(http.Header)
	name := session.GetString(req, "azure.givenname")
	if name == "" {
		return nil, errors.New("did not find 'azure.givenname' on session")
	}

	name += " the Great"
	header["firstname"] = []string{name}
	return header, nil
}