Skip to content

Commit 2336137

Browse files
committed
Fix linting for azuread, azuredb2c and cognito plugins
1 parent fbfa2de commit 2336137

10 files changed

Lines changed: 164 additions & 115 deletions

File tree

plugins/azuread/pkg/app/cli.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ func (cmd *VersionCmd) Run() error {
3131
return nil
3232
}
3333

34-
func createAzureAdClient(ctx context.Context, tenant, clientID, clientSecret, refreshToken string) (azureClient *azureclient.AzureADClient, err error) {
34+
func createAzureAdClient(ctx context.Context,
35+
tenant, clientID, clientSecret, refreshToken string) (*azureclient.AzureADClient, error) {
3536
if refreshToken != "" {
3637
return azureclient.NewAzureADClientWithRefreshToken(
3738
ctx,

plugins/azuread/pkg/app/fetch.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"github.com/aserto-dev/ds-load/sdk/common/cc"
88
)
99

10+
//nolint:lll // user and group properties include complex defaults.
1011
type FetchCmd struct {
1112
Tenant string `short:"a" help:"AzureAD tenant" env:"AZUREAD_TENANT" required:""`
1213
ClientID string `short:"i" help:"AzureAD Client ID" env:"AZUREAD_CLIENT_ID" required:""`

plugins/azuread/pkg/azureclient/credential.go

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ type RefreshTokenCredential struct {
2222
tenantID string
2323
}
2424

25-
func NewRefreshTokenCredential(ctx context.Context, tenantID, clientID, clientSecret, refreshToken string) (*RefreshTokenCredential, error) {
25+
func NewRefreshTokenCredential(ctx context.Context,
26+
tenantID, clientID, clientSecret, refreshToken string) (*RefreshTokenCredential, error) {
2627
c := &RefreshTokenCredential{
2728
clientID: clientID,
2829
clientSecret: clientSecret,
@@ -42,12 +43,12 @@ func (c *RefreshTokenCredential) GetToken(ctx context.Context, options policy.To
4243
payload := strings.NewReader(data)
4344

4445
// create the request and execute it
45-
req, err := http.NewRequestWithContext(ctx, "POST", url, payload)
46+
req, err := http.NewRequestWithContext(ctx, http.MethodPost, url, payload)
4647
if err != nil {
4748
return accessToken, err
4849
}
4950

50-
req.Header.Add("content-type", "application/x-www-form-urlencoded")
51+
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
5152

5253
res, err := http.DefaultClient.Do(req)
5354
if err != nil {
@@ -68,14 +69,29 @@ func (c *RefreshTokenCredential) GetToken(ctx context.Context, options policy.To
6869

6970
// check for error
7071
if responseData["error_description"] != nil {
71-
errorMessage := responseData["error_description"].(string)
72+
errorMessage, ok := responseData["error_description"].(string)
73+
if !ok {
74+
return accessToken, status.Error(codes.InvalidArgument, "failed to get error description")
75+
}
76+
7277
return accessToken, status.Error(codes.InvalidArgument, errorMessage)
7378
}
7479

7580
// retrieve the access token and expiration
76-
accessToken.Token = responseData["access_token"].(string)
77-
expiresIn := int(responseData["expires_in"].(float64))
78-
accessToken.ExpiresOn = time.Now().Add(time.Second * time.Duration(expiresIn))
81+
// retrieve the access token and expiration
82+
token, ok := responseData["access_token"].(string)
83+
if !ok {
84+
return accessToken, status.Error(codes.InvalidArgument, "failed to cast access token to string")
85+
}
86+
87+
accessToken.Token = token
88+
89+
expiresIn, ok := responseData["expires_in"].(float64)
90+
if !ok {
91+
return accessToken, status.Error(codes.InvalidArgument, "failed to convert token expiration time")
92+
}
93+
94+
accessToken.ExpiresOn = time.Now().Add(time.Second * time.Duration(int(expiresIn)))
7995

8096
return accessToken, nil
8197
}

plugins/azuread/pkg/fetch/fetch.go

Lines changed: 41 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -36,37 +36,8 @@ func (f *Fetcher) Fetch(ctx context.Context, outputWriter, errorWriter io.Writer
3636
defer jsonWriter.Close()
3737

3838
if f.Groups {
39-
aadGroups, err := f.azureClient.ListGroups(ctx, f.groupProps)
40-
if err != nil {
41-
common.WriteErrorWithExitCode(errorWriter, err, 1)
42-
}
43-
44-
for _, group := range aadGroups {
45-
writer := kiota.NewJsonSerializationWriter()
46-
47-
err := group.Serialize(writer)
48-
if err != nil {
49-
common.WriteErrorWithExitCode(errorWriter, err, 1)
50-
return err
51-
}
52-
53-
groupBytes, err := writer.GetSerializedContent()
54-
if err != nil {
55-
common.WriteErrorWithExitCode(errorWriter, err, 1)
56-
return err
57-
}
58-
59-
groupString := "{" + string(groupBytes) + "}"
60-
61-
var obj map[string]interface{}
62-
if err := json.Unmarshal([]byte(groupString), &obj); err != nil {
63-
common.WriteErrorWithExitCode(errorWriter, err, 1)
64-
return err
65-
}
66-
67-
if err := jsonWriter.Write(obj); err != nil {
68-
_, _ = errorWriter.Write([]byte(err.Error()))
69-
}
39+
if err := f.fetchGroups(ctx, jsonWriter, errorWriter); err != nil {
40+
return err
7041
}
7142
}
7243

@@ -84,24 +55,55 @@ func (f *Fetcher) Fetch(ctx context.Context, outputWriter, errorWriter io.Writer
8455
return err
8556
}
8657

87-
userBytes, err := writer.GetSerializedContent()
88-
if err != nil {
89-
common.WriteErrorWithExitCode(errorWriter, err, 1)
58+
if err := writeObject(jsonWriter, writer, errorWriter); err != nil {
9059
return err
9160
}
61+
}
62+
63+
return nil
64+
}
65+
66+
func (f *Fetcher) fetchGroups(ctx context.Context, jsonWriter *js.JSONArrayWriter, errorWriter io.Writer) error {
67+
aadGroups, err := f.azureClient.ListGroups(ctx, f.groupProps)
68+
if err != nil {
69+
common.WriteErrorWithExitCode(errorWriter, err, 1)
70+
}
9271

93-
userString := "{" + string(userBytes) + "}"
72+
for _, group := range aadGroups {
73+
writer := kiota.NewJsonSerializationWriter()
9474

95-
var obj map[string]interface{}
96-
if err := json.Unmarshal([]byte(userString), &obj); err != nil {
75+
err := group.Serialize(writer)
76+
if err != nil {
9777
common.WriteErrorWithExitCode(errorWriter, err, 1)
9878
return err
9979
}
10080

101-
if err := jsonWriter.Write(obj); err != nil {
102-
_, _ = errorWriter.Write([]byte(err.Error()))
81+
if err := writeObject(jsonWriter, writer, errorWriter); err != nil {
82+
return err
10383
}
10484
}
10585

10686
return nil
10787
}
88+
89+
func writeObject(jsonWriter *js.JSONArrayWriter, writer *kiota.JsonSerializationWriter, errorWriter io.Writer) error {
90+
objBytes, err := writer.GetSerializedContent()
91+
if err != nil {
92+
common.WriteErrorWithExitCode(errorWriter, err, 1)
93+
return err
94+
}
95+
96+
objString := "{" + string(objBytes) + "}"
97+
98+
var obj map[string]any
99+
if err := json.Unmarshal([]byte(objString), &obj); err != nil {
100+
common.WriteErrorWithExitCode(errorWriter, err, 1)
101+
return err
102+
}
103+
104+
if err := jsonWriter.Write(obj); err != nil {
105+
_, _ = errorWriter.Write([]byte(err.Error()))
106+
}
107+
108+
return nil
109+
}

plugins/azureadb2c/pkg/app/cli.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ func (cmd *VersionCmd) Run() error {
3131
return nil
3232
}
3333

34-
func createAzureAdClient(ctx context.Context, tenant, clientID, clientSecret, refreshToken string) (azureClient *azureclient.AzureADClient, err error) {
34+
func createAzureAdClient(ctx context.Context,
35+
tenant, clientID, clientSecret, refreshToken string) (*azureclient.AzureADClient, error) {
3536
if refreshToken != "" {
3637
return azureclient.NewAzureADClientWithRefreshToken(
3738
ctx,

plugins/azureadb2c/pkg/app/fetch.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"github.com/aserto-dev/ds-load/sdk/common/cc"
88
)
99

10+
//nolint:lll // user and group properties include complex defaults.
1011
type FetchCmd struct {
1112
Tenant string `short:"a" help:"AzureAD B2C tenant" env:"AZUREADB2C_TENANT" required:""`
1213
ClientID string `short:"i" help:"AzureAD B2C Client ID" env:"AZUREADB2C_CLIENT_ID" required:""`

plugins/azureadb2c/pkg/azureclient/credential.go

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ type RefreshTokenCredential struct {
2222
tenantID string
2323
}
2424

25-
func NewRefreshTokenCredential(ctx context.Context, tenantID, clientID, clientSecret, refreshToken string) (*RefreshTokenCredential, error) {
25+
func NewRefreshTokenCredential(ctx context.Context,
26+
tenantID, clientID, clientSecret, refreshToken string) (*RefreshTokenCredential, error) {
2627
c := &RefreshTokenCredential{
2728
clientID: clientID,
2829
clientSecret: clientSecret,
@@ -42,12 +43,12 @@ func (c *RefreshTokenCredential) GetToken(ctx context.Context, options policy.To
4243
payload := strings.NewReader(data)
4344

4445
// create the request and execute it
45-
req, err := http.NewRequestWithContext(ctx, "POST", url, payload)
46+
req, err := http.NewRequestWithContext(ctx, http.MethodPost, url, payload)
4647
if err != nil {
4748
return accessToken, err
4849
}
4950

50-
req.Header.Add("content-type", "application/x-www-form-urlencoded")
51+
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
5152

5253
res, err := http.DefaultClient.Do(req)
5354
if err != nil {
@@ -68,14 +69,28 @@ func (c *RefreshTokenCredential) GetToken(ctx context.Context, options policy.To
6869

6970
// check for error
7071
if responseData["error_description"] != nil {
71-
errorMessage := responseData["error_description"].(string)
72+
errorMessage, ok := responseData["error_description"].(string)
73+
if !ok {
74+
return accessToken, status.Error(codes.InvalidArgument, "failed to get error description")
75+
}
76+
7277
return accessToken, status.Error(codes.InvalidArgument, errorMessage)
7378
}
7479

7580
// retrieve the access token and expiration
76-
accessToken.Token = responseData["access_token"].(string)
77-
expiresIn := int(responseData["expires_in"].(float64))
78-
accessToken.ExpiresOn = time.Now().Add(time.Second * time.Duration(expiresIn))
81+
token, ok := responseData["access_token"].(string)
82+
if !ok {
83+
return accessToken, status.Error(codes.InvalidArgument, "failed to cast access token to string")
84+
}
85+
86+
accessToken.Token = token
87+
88+
expiresIn, ok := responseData["expires_in"].(float64)
89+
if !ok {
90+
return accessToken, status.Error(codes.InvalidArgument, "failed to convert token expiration time")
91+
}
92+
93+
accessToken.ExpiresOn = time.Now().Add(time.Second * time.Duration(int(expiresIn)))
7994

8095
return accessToken, nil
8196
}

plugins/azureadb2c/pkg/fetch/fetch.go

Lines changed: 41 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -36,37 +36,8 @@ func (f *Fetcher) Fetch(ctx context.Context, outputWriter, errorWriter io.Writer
3636
defer jsonWriter.Close()
3737

3838
if f.Groups {
39-
aadGroups, err := f.azureClient.ListGroups(ctx, f.groupProps)
40-
if err != nil {
41-
common.WriteErrorWithExitCode(errorWriter, err, 1)
42-
}
43-
44-
for _, group := range aadGroups {
45-
writer := kiota.NewJsonSerializationWriter()
46-
47-
err := group.Serialize(writer)
48-
if err != nil {
49-
common.WriteErrorWithExitCode(errorWriter, err, 1)
50-
return err
51-
}
52-
53-
groupBytes, err := writer.GetSerializedContent()
54-
if err != nil {
55-
common.WriteErrorWithExitCode(errorWriter, err, 1)
56-
return err
57-
}
58-
59-
groupString := "{" + string(groupBytes) + "}"
60-
61-
var obj map[string]interface{}
62-
if err := json.Unmarshal([]byte(groupString), &obj); err != nil {
63-
common.WriteErrorWithExitCode(errorWriter, err, 1)
64-
return err
65-
}
66-
67-
if err := jsonWriter.Write(obj); err != nil {
68-
_, _ = errorWriter.Write([]byte(err.Error()))
69-
}
39+
if err := f.fetchGroups(ctx, jsonWriter, errorWriter); err != nil {
40+
return err
7041
}
7142
}
7243

@@ -84,24 +55,55 @@ func (f *Fetcher) Fetch(ctx context.Context, outputWriter, errorWriter io.Writer
8455
return err
8556
}
8657

87-
userBytes, err := writer.GetSerializedContent()
88-
if err != nil {
89-
common.WriteErrorWithExitCode(errorWriter, err, 1)
58+
if err := writeObject(jsonWriter, writer, errorWriter); err != nil {
9059
return err
9160
}
61+
}
62+
63+
return nil
64+
}
65+
66+
func (f *Fetcher) fetchGroups(ctx context.Context, jsonWriter *js.JSONArrayWriter, errorWriter io.Writer) error {
67+
aadGroups, err := f.azureClient.ListGroups(ctx, f.groupProps)
68+
if err != nil {
69+
common.WriteErrorWithExitCode(errorWriter, err, 1)
70+
}
9271

93-
userString := "{" + string(userBytes) + "}"
72+
for _, group := range aadGroups {
73+
writer := kiota.NewJsonSerializationWriter()
9474

95-
var obj map[string]interface{}
96-
if err := json.Unmarshal([]byte(userString), &obj); err != nil {
75+
err := group.Serialize(writer)
76+
if err != nil {
9777
common.WriteErrorWithExitCode(errorWriter, err, 1)
9878
return err
9979
}
10080

101-
if err := jsonWriter.Write(obj); err != nil {
102-
_, _ = errorWriter.Write([]byte(err.Error()))
81+
if err := writeObject(jsonWriter, writer, errorWriter); err != nil {
82+
return err
10383
}
10484
}
10585

10686
return nil
10787
}
88+
89+
func writeObject(jsonWriter *js.JSONArrayWriter, writer *kiota.JsonSerializationWriter, errorWriter io.Writer) error {
90+
objBytes, err := writer.GetSerializedContent()
91+
if err != nil {
92+
common.WriteErrorWithExitCode(errorWriter, err, 1)
93+
return err
94+
}
95+
96+
objString := "{" + string(objBytes) + "}"
97+
98+
var obj map[string]any
99+
if err := json.Unmarshal([]byte(objString), &obj); err != nil {
100+
common.WriteErrorWithExitCode(errorWriter, err, 1)
101+
return err
102+
}
103+
104+
if err := jsonWriter.Write(obj); err != nil {
105+
_, _ = errorWriter.Write([]byte(err.Error()))
106+
}
107+
108+
return nil
109+
}

plugins/cognito/pkg/cognitoclient/cognito.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ type CognitoClient struct {
1515
userPoolID string
1616
}
1717

18+
const maximumNumberOfUsers = 60
19+
1820
func NewCognitoClient(accessKey, secretKey, userPoolID, region string) (*CognitoClient, error) {
1921
c := &CognitoClient{}
2022

@@ -45,7 +47,7 @@ func (c *CognitoClient) ListUsers(ctx context.Context) ([]*cognitoidentityprovid
4547
listUsersInput := &cognitoidentityprovider.ListUsersInput{
4648
UserPoolId: aws.String(c.userPoolID),
4749
PaginationToken: paginationToken,
48-
Limit: aws.Int64(60),
50+
Limit: aws.Int64(maximumNumberOfUsers),
4951
}
5052

5153
listUsersOutput, err := c.cognitoClient.ListUsersWithContext(ctx, listUsersInput)

0 commit comments

Comments
 (0)