diff options
| author | Max Resnick <max@ofmax.li> | 2023-04-02 08:52:52 -0700 |
|---|---|---|
| committer | Max Resnick <max@ofmax.li> | 2023-05-26 09:47:59 -0700 |
| commit | 480ce38f8c01de00adf6de651b8c2c57cd2148be (patch) | |
| tree | 85bd66986cb3f0ad501549e46e649073775e8077 /internal/authz | |
| parent | 9e04be2ca3d8980ebc8ec791d005ba77382fb1fa (diff) | |
| download | go-git-server-480ce38f8c01de00adf6de651b8c2c57cd2148be.tar.gz | |
Adds a lot of tests adds middleware hook
Diffstat (limited to '')
| -rw-r--r-- | internal/authz/middleware.go | 2 | ||||
| -rw-r--r-- | internal/authz/middleware_test.go | 15 |
2 files changed, 7 insertions, 10 deletions
diff --git a/internal/authz/middleware.go b/internal/authz/middleware.go index f01f262..a35b6b4 100644 --- a/internal/authz/middleware.go +++ b/internal/authz/middleware.go @@ -43,7 +43,7 @@ func Authentication(authMap TokenMap, next http.Handler) http.Handler { func Authorization(adminSvc *admin.Servicer, next http.Handler) http.Handler { return http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) { ctx := req.Context() - urn := ctx.Value("urn") + urn := ctx.Value("urn").(string) repo := req.URL.Path action := req.Method ok, err := adminSvc.Enforce(urn, repo, action) diff --git a/internal/authz/middleware_test.go b/internal/authz/middleware_test.go index 5795b3f..cc3f6d1 100644 --- a/internal/authz/middleware_test.go +++ b/internal/authz/middleware_test.go @@ -8,7 +8,6 @@ import ( "testing" "git.ofmax.li/go-git-server/internal/admin" - "github.com/casbin/casbin/v2" ) func junkTestHandler() http.HandlerFunc { @@ -85,10 +84,6 @@ func TestAuthentication(t *testing.T) { func TestAuthorization(t *testing.T) { t.Log("Starting authorization tests") baseURL := "http://test" - enf, err := casbin.NewSyncedEnforcer("../../auth_model.ini", "../../testpolicy.csv") - if err != nil { - t.Fatalf("Failed to load policies\n%s", err) - } cases := []struct { url string user string @@ -108,10 +103,12 @@ func TestAuthorization(t *testing.T) { description: "an unautorized action should yield a 403", }, } - svcr := &admin.Servicer{ - enf, - &admin.ServerRepos{}, - } + svcr := admin.NewService( + "../../auth_model.ini", + "../../testpolicy.csv", + "../../gitserver.yaml", + "../../repos", + false) for _, tc := range cases { t.Logf("test case: %s", tc.description) authHandler := Authorization(svcr, junkTestHandler()) |