From f4e72de8c4f0941d08c4dbced1904505abf49f8e Mon Sep 17 00:00:00 2001 From: Jay Nanduri Date: Thu, 21 Apr 2022 14:08:45 -0400 Subject: [PATCH 1/5] fix spaces in group name for project creation --- internal/commands/project.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/internal/commands/project.go b/internal/commands/project.go index af79de6dd..d803c0c95 100644 --- a/internal/commands/project.go +++ b/internal/commands/project.go @@ -238,7 +238,8 @@ func createGroupsMap(groupsStr string, groupsWrapper wrappers.GroupsWrapper) ([] var groupsNotFound []string for _, group := range groups { if len(group) > 0 { - groupIds, err := groupsWrapper.Get(group) + encodedGroup := encodeSpacesInGroupName(group) + groupIds, err := groupsWrapper.Get(encodedGroup) if err != nil { return nil, err } @@ -259,6 +260,10 @@ func createGroupsMap(groupsStr string, groupsWrapper wrappers.GroupsWrapper) ([] return groupMap, nil } +func encodeSpacesInGroupName(group string) string { + return strings.Replace(group, " ", "%20", -1) +} + func findGroupID(groups []wrappers.Group, name string) string { for i := 0; i < len(groups); i++ { if groups[i].Name == name { From 7aaf666f21c2a7a99e58266bb55f7bbc3b685129 Mon Sep 17 00:00:00 2001 From: Jay Nanduri Date: Fri, 22 Apr 2022 11:35:42 -0400 Subject: [PATCH 2/5] changed the encoding logic --- internal/commands/project.go | 7 +------ internal/wrappers/groups-http.go | 6 +++--- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/internal/commands/project.go b/internal/commands/project.go index d803c0c95..af79de6dd 100644 --- a/internal/commands/project.go +++ b/internal/commands/project.go @@ -238,8 +238,7 @@ func createGroupsMap(groupsStr string, groupsWrapper wrappers.GroupsWrapper) ([] var groupsNotFound []string for _, group := range groups { if len(group) > 0 { - encodedGroup := encodeSpacesInGroupName(group) - groupIds, err := groupsWrapper.Get(encodedGroup) + groupIds, err := groupsWrapper.Get(group) if err != nil { return nil, err } @@ -260,10 +259,6 @@ func createGroupsMap(groupsStr string, groupsWrapper wrappers.GroupsWrapper) ([] return groupMap, nil } -func encodeSpacesInGroupName(group string) string { - return strings.Replace(group, " ", "%20", -1) -} - func findGroupID(groups []wrappers.Group, name string) string { for i := 0; i < len(groups); i++ { if groups[i].Name == name { diff --git a/internal/wrappers/groups-http.go b/internal/wrappers/groups-http.go index c64f7a942..44471818a 100644 --- a/internal/wrappers/groups-http.go +++ b/internal/wrappers/groups-http.go @@ -2,7 +2,6 @@ package wrappers import ( "encoding/json" - "fmt" "net/http" "strings" @@ -32,8 +31,9 @@ func (g *GroupsHTTPWrapper) Get(groupName string) ([]Group, error) { clientTimeout := viper.GetUint(commonParams.ClientTimeoutKey) tenant := viper.GetString(commonParams.TenantKey) tenantPath := strings.Replace(g.path, "organization", tenant, 1) - reportPath := fmt.Sprintf("%s?groupName=%s", tenantPath, groupName) - resp, err := SendHTTPRequest(http.MethodGet, reportPath, nil, true, clientTimeout) + groupMap := make(map[string]string) + groupMap["groupName"] = groupName + resp, err := SendHTTPRequestWithQueryParams(http.MethodGet, tenantPath, groupMap, nil, clientTimeout) if err != nil { return nil, err } From 20ba5408d03cd9fabe4c4bbc7a0e8e1c8ebc30cb Mon Sep 17 00:00:00 2001 From: Jay Nanduri Date: Mon, 25 Apr 2022 14:30:34 -0400 Subject: [PATCH 3/5] check integration tests after commenting failed cases --- test/integration/auth_test.go | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/test/integration/auth_test.go b/test/integration/auth_test.go index e18c2c63f..aba01f8ee 100644 --- a/test/integration/auth_test.go +++ b/test/integration/auth_test.go @@ -78,7 +78,7 @@ func TestAuthValidateWithEmptyAuthenticationPath(t *testing.T) { } // Register with empty username, password or role -func TestAuthRegisterWithEmptyParameters(t *testing.T) { +func TestAuthRegisterWithEmptyUsernameParameter(t *testing.T) { assertRequiredParameter( t, "Please provide username flag", "auth", "register", @@ -87,21 +87,21 @@ func TestAuthRegisterWithEmptyParameters(t *testing.T) { flag(params.ClientRolesFlag), "ast-admin,ast-scanner", ) - assertRequiredParameter( - t, "Please provide password flag", - "auth", "register", - flag(params.UsernameFlag), viper.GetString(AstUsernameEnv), - flag(params.PasswordFlag), "", - flag(params.ClientRolesFlag), "ast-admin,ast-scanner", - ) - - assertRequiredParameter( - t, "Please provide roles flag", - "auth", "register", - flag(params.UsernameFlag), viper.GetString(AstUsernameEnv), - flag(params.PasswordFlag), viper.GetString(AstPasswordEnv), - flag(params.ClientRolesFlag), "", - ) + //assertRequiredParameter( + // t, "Please provide password flag", + // "auth", "register", + // flag(params.UsernameFlag), viper.GetString(AstUsernameEnv), + // flag(params.PasswordFlag), "", + // flag(params.ClientRolesFlag), "ast-admin,ast-scanner", + //) + // + //assertRequiredParameter( + // t, "Please provide roles flag", + // "auth", "register", + // flag(params.UsernameFlag), viper.GetString(AstUsernameEnv), + // flag(params.PasswordFlag), viper.GetString(AstPasswordEnv), + // flag(params.ClientRolesFlag), "", + //) } // Register with credentials and validate the obtained id/secret pair @@ -115,7 +115,8 @@ func TestAuthRegister(t *testing.T) { flag(params.PasswordFlag), viper.GetString(AstPasswordEnv), flag(params.ClientRolesFlag), strings.Join(commands.RoleSlice, ","), ) - assert.Error(t, err, "User does not have permission for roles [ast-admin ast-scanner]") + // assert.Error(t, err, "User does not have permission for roles [ast-admin ast-scanner]") + assert.Error(t, err, "failed creating client: Please provide username flag") //assert.NilError(t, err, "Register should pass") // //result, err := io.ReadAll(buffer) From c0d53af6c82201fe4b41dc2b1c45dfa37dcc34ab Mon Sep 17 00:00:00 2001 From: Jay Nanduri Date: Tue, 26 Apr 2022 12:03:45 -0400 Subject: [PATCH 4/5] check integration tests after commenting failed cases --- test/integration/auth_test.go | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/test/integration/auth_test.go b/test/integration/auth_test.go index aba01f8ee..aebab0292 100644 --- a/test/integration/auth_test.go +++ b/test/integration/auth_test.go @@ -87,21 +87,21 @@ func TestAuthRegisterWithEmptyUsernameParameter(t *testing.T) { flag(params.ClientRolesFlag), "ast-admin,ast-scanner", ) - //assertRequiredParameter( - // t, "Please provide password flag", - // "auth", "register", - // flag(params.UsernameFlag), viper.GetString(AstUsernameEnv), - // flag(params.PasswordFlag), "", - // flag(params.ClientRolesFlag), "ast-admin,ast-scanner", - //) - // - //assertRequiredParameter( - // t, "Please provide roles flag", - // "auth", "register", - // flag(params.UsernameFlag), viper.GetString(AstUsernameEnv), - // flag(params.PasswordFlag), viper.GetString(AstPasswordEnv), - // flag(params.ClientRolesFlag), "", - //) + assertRequiredParameter( + t, "Please provide password flag", + "auth", "register", + flag(params.UsernameFlag), viper.GetString(AstUsernameEnv), + flag(params.PasswordFlag), "", + flag(params.ClientRolesFlag), "ast-admin,ast-scanner", + ) + + assertRequiredParameter( + t, "Please provide roles flag", + "auth", "register", + flag(params.UsernameFlag), viper.GetString(AstUsernameEnv), + flag(params.PasswordFlag), viper.GetString(AstPasswordEnv), + flag(params.ClientRolesFlag), "", + ) } // Register with credentials and validate the obtained id/secret pair @@ -115,8 +115,8 @@ func TestAuthRegister(t *testing.T) { flag(params.PasswordFlag), viper.GetString(AstPasswordEnv), flag(params.ClientRolesFlag), strings.Join(commands.RoleSlice, ","), ) - // assert.Error(t, err, "User does not have permission for roles [ast-admin ast-scanner]") - assert.Error(t, err, "failed creating client: Please provide username flag") + assert.Error(t, err, "User does not have permission for roles [ast-admin ast-scanner]") + // assert.Error(t, err, "failed creating client: Please provide username flag") //assert.NilError(t, err, "Register should pass") // //result, err := io.ReadAll(buffer) From 6e0d1f622f9bfaeddd5afe74e1592990d2bcfa8e Mon Sep 17 00:00:00 2001 From: Jay Nanduri Date: Tue, 26 Apr 2022 13:01:07 -0400 Subject: [PATCH 5/5] check integration tests after commenting failed cases --- test/integration/auth_test.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/integration/auth_test.go b/test/integration/auth_test.go index aebab0292..e18c2c63f 100644 --- a/test/integration/auth_test.go +++ b/test/integration/auth_test.go @@ -78,7 +78,7 @@ func TestAuthValidateWithEmptyAuthenticationPath(t *testing.T) { } // Register with empty username, password or role -func TestAuthRegisterWithEmptyUsernameParameter(t *testing.T) { +func TestAuthRegisterWithEmptyParameters(t *testing.T) { assertRequiredParameter( t, "Please provide username flag", "auth", "register", @@ -116,7 +116,6 @@ func TestAuthRegister(t *testing.T) { flag(params.ClientRolesFlag), strings.Join(commands.RoleSlice, ","), ) assert.Error(t, err, "User does not have permission for roles [ast-admin ast-scanner]") - // assert.Error(t, err, "failed creating client: Please provide username flag") //assert.NilError(t, err, "Register should pass") // //result, err := io.ReadAll(buffer)