Skip to content

Commit bdbbbb7

Browse files
Fix relative URI resolution for acl:agent
Resolve agent URIs against the ACL URL so that relative references like `./#me` in an ACL file correctly match the authenticated WebID. Previously, `accessTo` and `default` were resolved but `agents` were not, causing 403 Forbidden when using relative URIs for agent WebIDs. Fixes JavaScriptSolidServer#64
1 parent 3568896 commit bdbbbb7

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

src/wac/parser.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,9 @@ function parseAuthorization(node, aclUrl) {
144144
auth.default = parseUriArray(node['acl:default'] || node['default'])
145145
.map(uri => resolveUri(uri, baseUrl));
146146

147-
// Parse agents (WebIDs can be relative too)
148-
auth.agents = parseUriArray(node['acl:agent'] || node['agent']);
147+
// Parse agents (WebIDs can be relative too) - resolve against ACL URL
148+
auth.agents = parseUriArray(node['acl:agent'] || node['agent'])
149+
.map(uri => resolveUri(uri, aclUrl));
149150

150151
// Parse agentClass
151152
auth.agentClasses = parseUriArray(node['acl:agentClass'] || node['agentClass']);

0 commit comments

Comments
 (0)