github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/cloud/aws/api-gateway/domains_v2.go (about) 1 package api_gateway 2 3 import ( 4 "fmt" 5 6 "github.com/khulnasoft-lab/defsec/pkg/concurrency" 7 "github.com/khulnasoft-lab/defsec/pkg/types" 8 9 v2 "github.com/khulnasoft-lab/defsec/pkg/providers/aws/apigateway/v2" 10 11 api "github.com/aws/aws-sdk-go-v2/service/apigatewayv2" 12 agTypes "github.com/aws/aws-sdk-go-v2/service/apigatewayv2/types" 13 ) 14 15 func (a *adapter) getDomainNamesV2() ([]v2.DomainName, error) { 16 a.Tracker().SetServiceLabel("Discovering v2 domain names...") 17 18 var input api.GetDomainNamesInput 19 var apiDomainNames []agTypes.DomainName 20 for { 21 output, err := a.clientV2.GetDomainNames(a.Context(), &input) 22 if err != nil { 23 return nil, err 24 } 25 apiDomainNames = append(apiDomainNames, output.Items...) 26 a.Tracker().SetTotalResources(len(apiDomainNames)) 27 if output.NextToken == nil { 28 break 29 } 30 input.NextToken = output.NextToken 31 } 32 33 a.Tracker().SetServiceLabel("Adapting v2 domain names...") 34 35 return concurrency.Adapt(apiDomainNames, a.RootAdapter, a.adaptDomainNameV2), nil 36 37 } 38 39 func (a *adapter) adaptDomainNameV2(domain agTypes.DomainName) (*v2.DomainName, error) { 40 metadata := a.CreateMetadata(fmt.Sprintf("/domainnames/%s", *domain.DomainName)) 41 securityPolicy := "TLS_1_2" 42 for _, policy := range domain.DomainNameConfigurations { 43 if string(policy.SecurityPolicy) != "TLS_1_2" { 44 securityPolicy = string(policy.SecurityPolicy) 45 } 46 } 47 return &v2.DomainName{ 48 Metadata: metadata, 49 Name: types.String(*domain.DomainName, metadata), 50 SecurityPolicy: types.String(securityPolicy, metadata), 51 }, nil 52 }