Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions server/datastore/datastore_app_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,23 @@ func testEnrollSecrets(t *testing.T, ds kolide.Datastore) {
name, err = ds.VerifyEnrollSecret("two_secret")
assert.NoError(t, err)
assert.Equal(t, "two", name)
}

func testEnrollSecretsCaseSensitive(t *testing.T, ds kolide.Datastore) {
err := ds.ApplyEnrollSecretSpec(
&kolide.EnrollSecretSpec{
Secrets: []kolide.EnrollSecret{
kolide.EnrollSecret{Name: "one", Secret: "one_secret", Active: true},
kolide.EnrollSecret{Name: "two", Secret: "two_secret", Active: false},
},
},
)
require.NoError(t, err)

_, err = ds.VerifyEnrollSecret("one_secret")
assert.NoError(t, err, "enroll secret should match with matching case")
_, err = ds.VerifyEnrollSecret("One_Secret")
assert.Error(t, err, "enroll secret with different case should not verify")
}

func testEnrollSecretRoundtrip(t *testing.T, ds kolide.Datastore) {
Expand Down
12 changes: 12 additions & 0 deletions server/datastore/datastore_hosts_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"strconv"
"testing"
"time"
"strings"

"github.com/WatchBeam/clock"
"github.com/kolide/fleet/server/kolide"
Expand Down Expand Up @@ -208,6 +209,17 @@ func testAuthenticateHost(t *testing.T, ds kolide.Datastore) {
assert.NotNil(t, err)
}

func testAuthenticateHostCaseSensitive(t *testing.T, ds kolide.Datastore) {
test.AddAllHostsLabel(t, ds)
for _, tt := range enrollTests {
h, err := ds.EnrollHost(tt.uuid, tt.nodeKey, "default")
require.Nil(t, err)

_, err = ds.AuthenticateHost(strings.ToUpper(h.NodeKey))
require.Error(t, err, "node key authentication should be case sensitive")
}
}

func testSearchHosts(t *testing.T, ds kolide.Datastore) {
_, err := ds.NewHost(&kolide.Host{
OsqueryHostID: "1234",
Expand Down
2 changes: 2 additions & 0 deletions server/datastore/datastore_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ var testFunctions = [...]func(*testing.T, kolide.Datastore){
testOrgInfo,
testAdditionalQueries,
testEnrollSecrets,
testEnrollSecretsCaseSensitive,
testEnrollSecretRoundtrip,
testCreateInvite,
testInviteByEmail,
Expand All @@ -24,6 +25,7 @@ var testFunctions = [...]func(*testing.T, kolide.Datastore){
testDeletePack,
testEnrollHost,
testAuthenticateHost,
testAuthenticateHostCaseSensitive,
testLabels,
testSaveLabel,
testManagingLabelsOnPacks,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package tables

import (
"database/sql"

"github.com/pkg/errors"
)

func init() {
MigrationClient.AddMigration(Up_20201102112520, Down_20201102112520)
}

func Up_20201102112520(tx *sql.Tx) error {
query := `
ALTER TABLE enroll_secrets
MODIFY secret VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
`
if _, err := tx.Exec(query); err != nil {
return errors.Wrap(err, "alter enroll secret collation")
}

query = `
ALTER TABLE hosts
MODIFY node_key VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
`
if _, err := tx.Exec(query); err != nil {
return errors.Wrap(err, "alter node key collation")
}

return nil
}

func Down_20201102112520(tx *sql.Tx) error {
return nil
}