Skip to content

Commit

Permalink
Remove empty string as default value for VerificationMode (#59)
Browse files Browse the repository at this point in the history
* remove empty option

* add test

* go lint

* go lint
  • Loading branch information
narph authored Jun 27, 2022
1 parent 9e0189f commit b5be848
Show file tree
Hide file tree
Showing 4 changed files with 80 additions and 2 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
build/
build/
.idea
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@ This project adheres to [Semantic Versioning](http://semver.org/).

### Fixed

## [0.2.5]

### Fixed

- Remove VerificationMode option to empty string. Default will be `full` #49

## [0.2.4]

### Fixed
Expand Down
5 changes: 4 additions & 1 deletion transport/tlscommon/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,6 @@ const (
)

var tlsVerificationModes = map[string]TLSVerificationMode{
"": VerifyFull,
"full": VerifyFull,
"strict": VerifyStrict,
"none": VerifyNone,
Expand Down Expand Up @@ -166,6 +165,10 @@ func (m *TLSVerificationMode) Unpack(in interface{}) error {
if !ok {
return fmt.Errorf("verification mode must be an identifier")
}
if s == "" {
*m = VerifyFull
return nil
}

mode, found := tlsVerificationModes[s]
if !found {
Expand Down
68 changes: 68 additions & 0 deletions transport/tlscommon/types_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
// Licensed to Elasticsearch B.V. under one or more contributor
// license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright
// ownership. Elasticsearch B.V. licenses this file to you under
// the Apache License, Version 2.0 (the "License"); you may
// not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.

package tlscommon

import (
"testing"

"github.com/stretchr/testify/assert"

"github.com/stretchr/testify/require"
)

func TestMarshallText(t *testing.T) {
var verification TLSVerificationMode
bytes, err := verification.MarshalText()
require.NoError(t, err)
require.NotNil(t, bytes)
require.Equal(t, "full", string(bytes))

verification = VerifyNone
bytes, err = verification.MarshalText()
require.NoError(t, err)
require.NotNil(t, bytes)
require.Equal(t, "none", string(bytes))
}

func TestLoadWithEmptyStringVerificationMode(t *testing.T) {
cfg, err := load(`
enabled: true
certificate: mycert.pem
key: mycert.key
verification_mode: ""
supported_protocols: [TLSv1.1, TLSv1.2]
renegotiation: freely
`)

assert.NoError(t, err)
assert.Equal(t, cfg.VerificationMode, VerifyFull)
}

func TestLoadWithEmptyVerificationMode(t *testing.T) {
cfg, err := load(`
enabled: true
verification_mode:
supported_protocols: [TLSv1.1, TLSv1.2]
curve_types:
- P-521
renegotiation: freely
`)

assert.NoError(t, err)
assert.Equal(t, cfg.VerificationMode, VerifyFull)
}

0 comments on commit b5be848

Please sign in to comment.