Skip to content

Commit a4a149a

Browse files
mx-psiFiery-Fenix
authored andcommitted
[chore] Cleanup for extensionauth.Server update (open-telemetry#38796)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description I intend to make `extensionauth.Server` independent of `extension.Extension` with open-telemetry/opentelemetry-collector/pull/12672. This means some changes in tests and such to make sure that we cast to the right interface when calling each method. This should have no visible impact to end users.
1 parent a6e1f37 commit a4a149a

File tree

5 files changed

+34
-15
lines changed

5 files changed

+34
-15
lines changed

extension/basicauthextension/extension.go

+5-2
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ func newClientAuthExtension(cfg *Config) *basicAuthClient {
3232
return &basicAuthClient{clientAuth: cfg.ClientAuth}
3333
}
3434

35-
func newServerAuthExtension(cfg *Config) (extensionauth.Server, error) {
35+
func newServerAuthExtension(cfg *Config) (*basicAuthServer, error) {
3636
if cfg.Htpasswd == nil || (cfg.Htpasswd.File == "" && cfg.Htpasswd.Inline == "") {
3737
return nil, errNoCredentialSource
3838
}
@@ -42,7 +42,10 @@ func newServerAuthExtension(cfg *Config) (extensionauth.Server, error) {
4242
}, nil
4343
}
4444

45-
var _ extensionauth.Server = (*basicAuthServer)(nil)
45+
var (
46+
_ extension.Extension = (*basicAuthServer)(nil)
47+
_ extensionauth.Server = (*basicAuthServer)(nil)
48+
)
4649

4750
type basicAuthServer struct {
4851
htpasswd *HtpasswdSettings

extension/oidcauthextension/extension.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,15 @@ import (
2020
"github.com/coreos/go-oidc/v3/oidc"
2121
"go.opentelemetry.io/collector/client"
2222
"go.opentelemetry.io/collector/component"
23+
"go.opentelemetry.io/collector/extension"
2324
"go.opentelemetry.io/collector/extension/extensionauth"
2425
"go.uber.org/zap"
2526
)
2627

27-
var _ extensionauth.Server = (*oidcExtension)(nil)
28+
var (
29+
_ extension.Extension = (*oidcExtension)(nil)
30+
_ extensionauth.Server = (*oidcExtension)(nil)
31+
)
2832

2933
type oidcExtension struct {
3034
cfg *Config

extension/oidcauthextension/extension_test.go

+21-9
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,12 @@ import (
2121
"github.com/stretchr/testify/assert"
2222
"github.com/stretchr/testify/require"
2323
"go.opentelemetry.io/collector/component/componenttest"
24+
"go.opentelemetry.io/collector/extension"
2425
"go.opentelemetry.io/collector/extension/extensionauth"
2526
"go.uber.org/zap"
2627
)
2728

28-
func newTestExtension(t *testing.T, cfg *Config) extensionauth.Server {
29+
func newTestExtension(t *testing.T, cfg *Config) extension.Extension {
2930
t.Helper()
3031
return newExtension(cfg, zap.NewNop())
3132
}
@@ -58,15 +59,18 @@ func TestOIDCAuthenticationSucceeded(t *testing.T) {
5859
token, err := oidcServer.token(payload)
5960
require.NoError(t, err)
6061

62+
srvAuth, ok := p.(extensionauth.Server)
63+
require.True(t, ok)
64+
6165
// test
62-
ctx, err := p.Authenticate(context.Background(), map[string][]string{"authorization": {fmt.Sprintf("Bearer %s", token)}})
66+
ctx, err := srvAuth.Authenticate(context.Background(), map[string][]string{"authorization": {fmt.Sprintf("Bearer %s", token)}})
6367

6468
// verify
6569
assert.NoError(t, err)
6670
assert.NotNil(t, ctx)
6771

6872
// test, upper-case header
69-
ctx, err = p.Authenticate(context.Background(), map[string][]string{"Authorization": {fmt.Sprintf("Bearer %s", token)}})
73+
ctx, err = srvAuth.Authenticate(context.Background(), map[string][]string{"Authorization": {fmt.Sprintf("Bearer %s", token)}})
7074

7175
// verify
7276
assert.NoError(t, err)
@@ -206,10 +210,11 @@ func TestOIDCFailedToLoadIssuerCAFromPathInvalidContent(t *testing.T) {
206210

207211
func TestOIDCInvalidAuthHeader(t *testing.T) {
208212
// prepare
209-
p := newTestExtension(t, &Config{
213+
p, ok := newTestExtension(t, &Config{
210214
Audience: "some-audience",
211215
IssuerURL: "http://example.com",
212-
})
216+
}).(extensionauth.Server)
217+
require.True(t, ok)
213218

214219
// test
215220
ctx, err := p.Authenticate(context.Background(), map[string][]string{"authorization": {"some-value"}})
@@ -221,10 +226,11 @@ func TestOIDCInvalidAuthHeader(t *testing.T) {
221226

222227
func TestOIDCNotAuthenticated(t *testing.T) {
223228
// prepare
224-
p := newTestExtension(t, &Config{
229+
p, ok := newTestExtension(t, &Config{
225230
Audience: "some-audience",
226231
IssuerURL: "http://example.com",
227-
})
232+
}).(extensionauth.Server)
233+
require.True(t, ok)
228234

229235
// test
230236
ctx, err := p.Authenticate(context.Background(), make(map[string][]string))
@@ -266,8 +272,11 @@ func TestFailedToVerifyToken(t *testing.T) {
266272
err = p.Start(context.Background(), componenttest.NewNopHost())
267273
require.NoError(t, err)
268274

275+
srvAuth, ok := p.(extensionauth.Server)
276+
require.True(t, ok)
277+
269278
// test
270-
ctx, err := p.Authenticate(context.Background(), map[string][]string{"authorization": {"Bearer some-token"}})
279+
ctx, err := srvAuth.Authenticate(context.Background(), map[string][]string{"authorization": {"Bearer some-token"}})
271280

272281
// verify
273282
assert.Error(t, err)
@@ -329,8 +338,11 @@ func TestFailedToGetGroupsClaimFromToken(t *testing.T) {
329338
token, err := oidcServer.token(payload)
330339
require.NoError(t, err)
331340

341+
srvAuth, ok := p.(extensionauth.Server)
342+
require.True(t, ok)
343+
332344
// test
333-
ctx, err := p.Authenticate(context.Background(), map[string][]string{"authorization": {fmt.Sprintf("Bearer %s", token)}})
345+
ctx, err := srvAuth.Authenticate(context.Background(), map[string][]string{"authorization": {fmt.Sprintf("Bearer %s", token)}})
334346

335347
// verify
336348
assert.ErrorIs(t, err, tt.expectedError)

receiver/otelarrowreceiver/go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ require (
2121
go.opentelemetry.io/collector/consumer v1.28.0
2222
go.opentelemetry.io/collector/consumer/consumererror v0.122.0
2323
go.opentelemetry.io/collector/consumer/consumertest v0.122.0
24+
go.opentelemetry.io/collector/extension v1.28.0
2425
go.opentelemetry.io/collector/extension/extensionauth v0.122.0
2526
go.opentelemetry.io/collector/pdata v1.28.0
2627
go.opentelemetry.io/collector/receiver v1.28.0
@@ -75,7 +76,6 @@ require (
7576
go.opentelemetry.io/collector/config/configopaque v1.28.0 // indirect
7677
go.opentelemetry.io/collector/consumer/xconsumer v0.122.0 // indirect
7778
go.opentelemetry.io/collector/exporter v0.122.0 // indirect
78-
go.opentelemetry.io/collector/extension v1.28.0 // indirect
7979
go.opentelemetry.io/collector/featuregate v1.28.0 // indirect
8080
go.opentelemetry.io/collector/pdata/pprofile v0.122.0 // indirect
8181
go.opentelemetry.io/collector/pipeline v0.122.0 // indirect

receiver/otelarrowreceiver/otelarrow_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import (
2828
"go.opentelemetry.io/collector/config/configtls"
2929
"go.opentelemetry.io/collector/consumer"
3030
"go.opentelemetry.io/collector/consumer/consumertest"
31-
"go.opentelemetry.io/collector/extension/extensionauth"
31+
"go.opentelemetry.io/collector/extension"
3232
"go.opentelemetry.io/collector/pdata/pmetric"
3333
"go.opentelemetry.io/collector/pdata/ptrace"
3434
"go.opentelemetry.io/collector/pdata/ptrace/ptraceotlp"
@@ -675,7 +675,7 @@ func (h *hostWithExtensions) GetExtensions() map[component.ID]component.Componen
675675
return h.exts
676676
}
677677

678-
func newTestAuthExtension(t *testing.T, authFunc func(ctx context.Context, hdrs map[string][]string) (context.Context, error)) extensionauth.Server {
678+
func newTestAuthExtension(t *testing.T, authFunc func(ctx context.Context, hdrs map[string][]string) (context.Context, error)) extension.Extension {
679679
ctrl := gomock.NewController(t)
680680
as := mock.NewMockServer(ctrl)
681681
as.EXPECT().Authenticate(gomock.Any(), gomock.Any()).AnyTimes().DoAndReturn(authFunc)

0 commit comments

Comments
 (0)