Skip to content

Commit

Permalink
Support custom authentication middleware implementations (#168)
Browse files Browse the repository at this point in the history
This commit provides the necessary means for projects building upon the
brokerapi to use their own authentication middleware, e.g. to provide
authentication based on Bearer tokens as defined in RFC 6750,
section 2.1.

Closes #158
  • Loading branch information
cimnine authored May 27, 2021
1 parent d75378a commit 7ca6a82
Show file tree
Hide file tree
Showing 3 changed files with 181 additions and 87 deletions.
6 changes: 5 additions & 1 deletion api.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,15 @@ type BrokerCredentials struct {
}

func New(serviceBroker ServiceBroker, logger lager.Logger, brokerCredentials BrokerCredentials) http.Handler {
authMiddleware := auth.NewWrapper(brokerCredentials.Username, brokerCredentials.Password).Wrap
return NewWithCustomAuth(serviceBroker, logger, authMiddleware)
}

func NewWithCustomAuth(serviceBroker ServiceBroker, logger lager.Logger, authMiddleware mux.MiddlewareFunc) http.Handler {
router := mux.NewRouter()

AttachRoutes(router, serviceBroker, logger)

authMiddleware := auth.NewWrapper(brokerCredentials.Username, brokerCredentials.Password).Wrap
apiVersionMiddleware := middlewares.APIVersionMiddleware{LoggerFactory: logger}

router.Use(middlewares.AddCorrelationIDToContext)
Expand Down
Loading

0 comments on commit 7ca6a82

Please sign in to comment.