Skip to content

Commit 202cccb

Browse files
authored
Merge pull request #66 from mutablelogic/v4
Added middleware
2 parents e5dbbb9 + 379fa77 commit 202cccb

File tree

6 files changed

+38
-2
lines changed

6 files changed

+38
-2
lines changed

cmd/nginx-server/main.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ func main() {
6262
auth, err := auth.Config{
6363
TokenJar: jar.(auth.TokenJar),
6464
TokenBytes: 8,
65+
Bearer: true, // Use bearer token in requests for authorization
6566
}.New()
6667
if err != nil {
6768
log.Fatal(err)
@@ -77,12 +78,14 @@ func main() {
7778
Service: n.(server.ServiceEndpoints),
7879
Middleware: []server.Middleware{
7980
logger.(server.Middleware),
81+
auth.(server.Middleware),
8082
},
8183
},
8284
"auth": { // /api/auth/...
8385
Service: auth.(server.ServiceEndpoints),
8486
Middleware: []server.Middleware{
8587
logger.(server.Middleware),
88+
auth.(server.Middleware),
8689
},
8790
},
8891
},

pkg/handler/auth/config.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
type Config struct {
1212
TokenJar TokenJar `hcl:"token_jar" description:"Persistent storage for tokens"`
1313
TokenBytes int `hcl:"token_bytes" description:"Number of bytes in a token"`
14+
Bearer bool `hcl:"bearer" description:"Use bearer token for authorization"`
1415
}
1516

1617
// Check interfaces are satisfied

pkg/handler/auth/endpoints.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@ import (
1515
types "github.com/mutablelogic/go-server/pkg/types"
1616
)
1717

18+
///////////////////////////////////////////////////////////////////////////////
19+
// TYPES
20+
21+
// Check interfaces are satisfied
22+
var _ server.ServiceEndpoints = (*auth)(nil)
23+
1824
///////////////////////////////////////////////////////////////////////////////
1925
// GLOBALS
2026

pkg/handler/auth/middleware.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package auth
2+
3+
import (
4+
"context"
5+
"net/http"
6+
7+
// Packages
8+
"github.com/mutablelogic/go-server"
9+
"github.com/mutablelogic/go-server/pkg/provider"
10+
)
11+
12+
///////////////////////////////////////////////////////////////////////////////
13+
// TYPES
14+
15+
// Check interfaces are satisfied
16+
var _ server.Middleware = (*auth)(nil)
17+
18+
///////////////////////////////////////////////////////////////////////////////
19+
// PUBLIC METHODS
20+
21+
func (middleware *auth) Wrap(ctx context.Context, next http.HandlerFunc) http.HandlerFunc {
22+
logger := provider.Logger(ctx)
23+
return func(w http.ResponseWriter, r *http.Request) {
24+
logger.Printf(ctx, "TODO Auth: %v", r.URL)
25+
next(w, r)
26+
}
27+
}

pkg/handler/auth/task.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ type auth struct {
2121

2222
// Check interfaces are satisfied
2323
var _ server.Task = (*auth)(nil)
24-
var _ server.ServiceEndpoints = (*auth)(nil)
2524

2625
///////////////////////////////////////////////////////////////////////////////
2726
// LIFECYCLE

pkg/handler/tokenjar/task.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ func (jar *tokenjar) Run(ctx context.Context) error {
3333
if err := jar.Write(); err != nil {
3434
logger.Print(ctx, err)
3535
} else {
36-
logger.Print(ctx, "Sync %q", filepath.Base(jar.filename))
36+
logger.Printf(ctx, "Sync %q", filepath.Base(jar.filename))
3737
}
3838
}
3939
case <-ctx.Done():

0 commit comments

Comments
 (0)