Skip to content

Commit c3baeda

Browse files
joyxxipierDipi
andauthored
mt-broker ingress: Reject unauthorized requests (#8105)
* mt-broker ingress: Reject unauthorized requests * fix: verify audience before proceeding verification * Change to review comment Co-authored-by: Pierangelo Di Pilato <[email protected]> --------- Co-authored-by: Pierangelo Di Pilato <[email protected]>
1 parent 7c1c46c commit c3baeda

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

pkg/broker/ingress/ingress_handler.go

+10-10
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ import (
2323
"strings"
2424
"time"
2525

26+
"k8s.io/utils/ptr"
27+
2628
opencensusclient "github.com/cloudevents/sdk-go/observability/opencensus/v2/client"
2729
cloudevents "github.com/cloudevents/sdk-go/v2"
2830
"github.com/cloudevents/sdk-go/v2/binding"
@@ -231,16 +233,14 @@ func (h *Handler) ServeHTTP(writer http.ResponseWriter, request *http.Request) {
231233
}
232234

233235
features := feature.FromContext(ctx)
234-
if features.IsOIDCAuthentication() {
235-
h.Logger.Debug("OIDC authentication is enabled")
236-
237-
err = h.tokenVerifier.VerifyJWTFromRequest(ctx, request, broker.Status.Address.Audience, writer)
238-
if err != nil {
239-
h.Logger.Warn("Error when validating the JWT token in the request", zap.Error(err))
240-
return
241-
}
242-
243-
h.Logger.Debug("Request contained a valid JWT. Continuing...")
236+
audience := ptr.To("")
237+
if broker.Status.Address != nil {
238+
audience = broker.Status.Address.Audience
239+
}
240+
err = h.tokenVerifier.VerifyRequest(ctx, features, audience, brokerNamespace, broker.Status.Policies, request, writer)
241+
if err != nil {
242+
h.Logger.Warn("Failed to verify AuthN and AuthZ.", zap.Error(err))
243+
return
244244
}
245245

246246
ctx, span := trace.StartSpan(ctx, tracing.BrokerMessagingDestination(brokerNamespacedName))

0 commit comments

Comments
 (0)