Files
CommunitySolidServer/config/ldp/authorization/webacl.json
Joachim Van Herwegen 3db1921633 feat: Create an OperationRouterHandler
This allows us to route after an Operation has been parsed
2022-11-09 09:10:00 +01:00

68 lines
2.6 KiB
JSON

{
"@context": "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^5.0.0/components/context.jsonld",
"import": [
"css:config/ldp/authorization/acl/wac-allow.json",
"css:config/ldp/authorization/readers/acl.json",
"css:config/ldp/authorization/readers/ownership.json"
],
"@graph": [
{
"comment": "Requests permissions on subject resources for auxiliary resources.",
"@id": "urn:solid-server:default:PermissionReader",
"@type": "AuxiliaryReader",
"auxiliaryStrategy": { "@id": "urn:solid-server:default:AuxiliaryStrategy" },
"reader": {
"@type": "UnionPermissionReader",
"readers": [
{
"comment": "This PermissionReader will be used to prevent external access to containers used for internal storage.",
"@id": "urn:solid-server:default:PathBasedReader",
"@type": "PathBasedReader",
"baseUrl": { "@id": "urn:solid-server:default:variable:baseUrl" }
},
{
"@id": "urn:solid-server:default:OwnerPermissionReader",
"@type": "OwnerPermissionReader",
"authStrategy": { "@id": "urn:solid-server:default:AclStrategy" }
},
{
"comment": "Uses Web Access Control for authorization.",
"@id": "urn:solid-server:default:WrappedWebAclReader"
}
]
}
},
{
"comment": "The templates for WAC authorization documents are in the wac subfolder.",
"@id": "urn:solid-server:default:TemplatedResourcesGenerator",
"@type": "SubfolderResourcesGenerator",
"subfolders": [ "wac" ]
},
{
"comment": "Collects the metadata necessary for the WAC-Allow header.",
"@id": "urn:solid-server:default:OperationMetadataCollector",
"@type": "SequenceHandler",
"handlers": [
{ "@type": "WebAclMetadataCollector" }
]
},
{
"comment": "WAC-Allow header indicates available permissions.",
"@id": "urn:solid-server:default:MetadataWriter",
"@type": "ParallelHandler",
"handlers": [
{ "@id": "urn:solid-server:default:MetadataWriter_WacAllow" }
]
},
{
"comment": "In case of WebACL authorization the ACL resources determine authorization.",
"@id": "urn:solid-server:default:AuthResourceHttpHandler",
"@type": "RouterHandler",
"args_baseUrl": { "@id": "urn:solid-server:default:variable:baseUrl" },
"args_targetExtractor": { "@id": "urn:solid-server:default:TargetExtractor" },
"args_allowedPathNames": [ "^/.*\\.acl$" ],
"args_handler": { "@id": "urn:solid-server:default:LdpHandler" }
}
]
}