These curl command will create a small set of test resources that can be used to test various authorization scenarios. The resources and ACLs can be also modified to test other features of the WebAC implementation not covered by this set.
Create collection1, subcollection1, item1, item2, item3
Code Block |
---|
|
curl -i -X PUT "http://localhost:8080/fcrepo/rest/collection1"
curl -i -X PUT "http://localhost:8080/fcrepo/rest/collection1/subcollection1"
curl -i -X PUT "http://localhost:8080/fcrepo/rest/collection1/item1"
curl -i -X PUT "http://localhost:8080/fcrepo/rest/collection1/subcollection1/item2"
curl -i -X PUT "http://localhost:8080/fcrepo/rest/collection1/subcollection1/item3" |
Create ACL1, add auth 1 & 2
Code Block |
---|
firstline | 6 |
---|
linenumbers | true |
---|
|
curl -i -X PUT "http://localhost:8080/fcrepo/rest/acl1"
curl -i -X PUT "http://localhost:8080/fcrepo/rest/acl1/auth1"
curl -i -X PUT "http://localhost:8080/fcrepo/rest/acl1/auth2"
curl -i -X PATCH -H "Content-Type: application/sparql-update" -d "PREFIX acl: <http://www.w3.org/ns/auth/acl#> INSERT { <> a acl:Authorization; acl:accessTo </fcrepo/rest/collection1>; acl:mode acl:Read, acl:Write; acl:agent 'adminuser' . } WHERE {}" http://localhost:8080/fcrepo/rest/acl1/auth1
curl -i -X PATCH -H "Content-Type: application/sparql-update" -d "PREFIX acl: <http://www.w3.org/ns/auth/acl#> INSERT { <> a acl:Authorization; acl:accessTo </fcrepo/rest/collection1>; acl:mode acl:Read; acl:agent 'testuser' . } WHERE {}" http://localhost:8080/fcrepo/rest/acl1/auth2 |
Create ACL2, add auth 3 & 4
Code Block |
---|
firstline | 11 |
---|
linenumbers | true |
---|
|
curl -i -X PUT "http://localhost:8080/fcrepo/rest/acl2"
curl -i -X PUT "http://localhost:8080/fcrepo/rest/acl2/auth3"
curl -i -X PUT "http://localhost:8080/fcrepo/rest/acl2/auth4"
curl -i -X PATCH -H "Content-Type: application/sparql-update" -d "PREFIX acl: <http://www.w3.org/ns/auth/acl#> INSERT { <> a acl:Authorization; acl:accessTo </fcrepo/rest/collection1/item1>; acl:mode acl:Read, acl:Write; acl:agent 'adminuser' . } WHERE {}" http://localhost:8080/fcrepo/rest/acl2/auth3
curl -i -X PATCH -H "Content-Type: application/sparql-update" -d "PREFIX acl: <http://www.w3.org/ns/auth/acl#> INSERT { <> a acl:Authorization; acl:accessTo </fcrepo/rest/collection1/item1>; acl:mode acl:Read; acl:agent 'adminuser' . } WHERE {}" http://localhost:8080/fcrepo/rest/acl2/auth4 |
Create ACL3, create auth 5
Code Block |
---|
firstline | 16 |
---|
linenumbers | true |
---|
|
curl -i -X PUT "http://localhost:8080/fcrepo/rest/acl3"
curl -i -X PUT "http://localhost:8080/fcrepo/rest/acl3/auth5"
curl -i -X PATCH -H "Content-Type: application/sparql-update" -d "PREFIX acl: <http://www.w3.org/ns/auth/acl#> INSERT { <> a acl:Authorization; acl:accessTo </fcrepo/rest/collection1/subcollection1/item3>; acl:mode acl:Read; acl:agent 'adminuser' . } WHERE {}" http://localhost:8080/fcrepo/rest/acl3/auth5 |
Point collection1 to ACL1, item1 to ACL2, and item3 to ACL3
Code Block |
---|
firstline | 19 |
---|
linenumbers | true |
---|
|
curl -i -X PATCH -H "Content-Type: application/sparql-update" -d "PREFIX acl: <http://www.w3.org/ns/auth/acl#> INSERT { </fcrepo/rest/collection1> acl:accessControl </fcrepo/rest/acl1> . } WHERE {}" http://localhost:8080/fcrepo/rest/acl1
curl -i -X PATCH -H "Content-Type: application/sparql-update" -d "PREFIX acl: <http://www.w3.org/ns/auth/acl#> INSERT { </fcrepo/rest/collection1/item1> acl:accessControl </fcrepo/rest/acl2> . } WHERE {}" http://localhost:8080/fcrepo/rest/acl2
curl -i -X PATCH -H "Content-Type: application/sparql-update" -d "PREFIX acl: <http://www.w3.org/ns/auth/acl#> INSERT { </fcrepo/rest/collection1/subcollection1/item3> acl:accessControl </fcrepo/rest/acl3> . } WHERE {}" http://localhost:8080/fcrepo/rest/acl3 |
...