diff --git a/.github/workflows/production-deploy.yml b/.github/workflows/production-deploy.yml index 2141ef0..5f6961e 100644 --- a/.github/workflows/production-deploy.yml +++ b/.github/workflows/production-deploy.yml @@ -42,10 +42,10 @@ jobs: - name: Get kubeconfig from github secrets run: | - mkdir -p $HOME/.kube - echo "${{ secrets.KUBECONFIG }}" > $HOME/.kube/config - sudo chown $(id -u):$(id -g) $HOME/.kube/config - chmod 600 $HOME/.kube/config + mkdir -p $HOME/.kube + echo "${{ secrets.KUBECONFIG }}" > $HOME/.kube/config + sudo chown $(id -u):$(id -g) $HOME/.kube/config + chmod 600 $HOME/.kube/config - name: Install helm uses: azure/setup-helm@v3 diff --git a/app/method.go b/app/method.go index 2a74643..2152fc8 100644 --- a/app/method.go +++ b/app/method.go @@ -25,6 +25,8 @@ func initialCaretaker(c *fasthttp.RequestCtx, f func(md common.MethodData) commo var token string var bearerToken bool switch { + case len(c.Request.Header.CookieBytes([]byte("X-Ripple-Token"))) > 0: + token = string(c.Request.Header.CookieBytes([]byte("X-Ripple-Token"))) case len(c.Request.Header.Peek("X-Ripple-Token")) > 0: token = string(c.Request.Header.Peek("X-Ripple-Token")) case strings.HasPrefix(string(c.Request.Header.Peek("Authorization")), "Bearer "): @@ -65,6 +67,14 @@ func initialCaretaker(c *fasthttp.RequestCtx, f func(md common.MethodData) commo } } if missingPrivileges != 0 { + slog.Error( + "Denied access due to missing privileges", + "tokenHas", md.User.TokenPrivileges, + "userHas", md.User.UserPrivileges, + "missing", missingPrivileges, + "userID", md.User.UserID, + "route", string(c.Request.URI().Path()), + ) c.SetStatusCode(401) mkjson(c, common.SimpleResponse(401, "Unauthorized.")) return diff --git a/main.go b/main.go index 50c4558..2afa0dd 100644 --- a/main.go +++ b/main.go @@ -2,8 +2,7 @@ package main import ( "fmt" - "log" - "syscall" + "os" "golang.org/x/exp/slog" @@ -17,12 +16,11 @@ import ( "github.com/serenize/snaker" ) -func init() { - log.SetFlags(log.Ltime) - log.SetPrefix(fmt.Sprintf("%d|", syscall.Getpid())) -} - func main() { + logger := slog.New(slog.NewJSONHandler(os.Stdout, nil)) + + slog.SetDefault(logger) + slog.Info("Akatsuki API") settings := common.LoadSettings()