github.com/kyma-incubator/compass/components/director@v0.0.0-20230623144113-d764f56ff805/internal/authenticator/claims/nsadapterClaimsValidator.go (about)

     1  package claims
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/kyma-incubator/compass/components/director/pkg/idtokenclaims"
     7  
     8  	"github.com/kyma-incubator/compass/components/hydrator/pkg/tenantmapping"
     9  	"github.com/pkg/errors"
    10  )
    11  
    12  type claimsValidator struct{}
    13  
    14  // NewClaimsValidator implements the ClaimsValidator interface
    15  func NewClaimsValidator() *claimsValidator {
    16  	return &claimsValidator{}
    17  }
    18  
    19  // Validate validates the claims and asserts that the consumerTenant and externalTenant are not empty
    20  func (v *claimsValidator) Validate(_ context.Context, claims idtokenclaims.Claims) error {
    21  	if err := claims.Valid(); err != nil {
    22  		return errors.Wrapf(err, "while validating claims")
    23  	}
    24  
    25  	if claims.Tenant[tenantmapping.ConsumerTenantKey] == "" || claims.Tenant[tenantmapping.ExternalTenantKey] == "" {
    26  		return errors.New("missing tenant")
    27  	}
    28  
    29  	return nil
    30  }