summaryrefslogtreecommitdiff
path: root/pkg/app
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-03-27 11:47:58 -0600
committermo khan <mo@mokhan.ca>2025-03-27 11:47:58 -0600
commit3faa19c3aeae15070f2e143b031daaddfe296735 (patch)
treedc86e49908920c10479b9e9905c58c0c44e2cee6 /pkg/app
parentb08580ff78708519f0594a62531cf6ce45559265 (diff)
feat: start to add structured logging
Diffstat (limited to 'pkg/app')
-rw-r--r--pkg/app/app.go20
1 files changed, 15 insertions, 5 deletions
diff --git a/pkg/app/app.go b/pkg/app/app.go
index 35609d7..c55ecce 100644
--- a/pkg/app/app.go
+++ b/pkg/app/app.go
@@ -3,7 +3,6 @@ package app
import (
"encoding/json"
"fmt"
- "log"
"net"
"net/http"
"os"
@@ -14,6 +13,7 @@ import (
"github.com/xlgmokha/x/pkg/x"
"gitlab.com/mokhax/spike/pkg/authz"
"gitlab.com/mokhax/spike/pkg/cfg"
+ xlog "gitlab.com/mokhax/spike/pkg/log"
"gitlab.com/mokhax/spike/pkg/srv"
)
@@ -23,6 +23,7 @@ func WithCasbin() authz.Authorizer {
return authz.AuthorizerFunc(func(r *http.Request) bool {
host, _, err := net.SplitHostPort(r.Host)
if err != nil {
+ xlog.WithFields(r, xlog.Fields{"error": err})
return false
}
@@ -32,11 +33,18 @@ func WithCasbin() authz.Authorizer {
}
ok, err := enforcer.Enforce(subject, host, r.Method, r.URL.Path)
if err != nil {
- fmt.Printf("%v\n", err)
+ xlog.WithFields(r, xlog.Fields{"error": err})
return false
}
fmt.Printf("%v: %v -> %v %v%v\n", ok, subject, r.Method, host, r.URL.Path)
+ xlog.WithFields(r, xlog.Fields{
+ "ok": ok,
+ "subject": subject,
+ "action": r.Method,
+ "domain": host,
+ "object": r.URL.Path,
+ })
return ok
})
}
@@ -50,8 +58,10 @@ func WithCedar() authz.Authorizer {
var entities cedar.EntityMap
if err := json.Unmarshal(x.Must(os.ReadFile("cedar.json")), &entities); err != nil {
- log.Fatal(err)
+ xlog.Logger.Error("Error", "error", err)
+ return nil
}
+
return authz.AuthorizerFunc(func(r *http.Request) bool {
host, _, err := net.SplitHostPort(r.Host)
if err != nil {
@@ -79,9 +89,9 @@ func WithCedar() authz.Authorizer {
}
func Start(bindAddr string) error {
+ mux := authz.HTTP(WithCasbin(), Routes())
return srv.Run(cfg.New(
bindAddr,
- // cfg.WithMux(authz.HTTP(WithCedar(), Routes())),
- cfg.WithMux(authz.HTTP(WithCasbin(), Routes())),
+ cfg.WithMux(mux),
))
}