Skip to content

Conversation

@melvincarvalho
Copy link
Contributor

Summary

Add optional authorize callback that allows servers to check permissions before allowing WebSocket subscriptions.

Changes

  • Add authorize(iri, req, callback) option called before each subscription
  • If authorization fails, client receives err <url> forbidden
  • Default allows all subscriptions (backwards compatible)
  • Expose HTTP upgrade request on client for auth header/cookie access
  • Update README with usage example

Usage

var solidWs = SolidWs(server, app, {
  authorize: function (iri, req, callback) {
    checkUserAccess(iri, req, function (err, hasAccess) {
      callback(err, hasAccess)
    })
  }
})

Fixes #28
Related: nodeSolidServer/node-solid-server#1334

Add optional `authorize` callback that allows servers to check
permissions before allowing WebSocket subscriptions.

- authorize(iri, req, callback) is called before each subscription
- If authorization fails, client receives `err <url> forbidden`
- Default allows all subscriptions (backwards compatible)
- Exposes upgrade request on client for auth header access

Fixes nodeSolidServer#28
melvincarvalho added a commit to melvincarvalho/node-solid-server that referenced this pull request Jan 7, 2026
Check WAC read permission before allowing WebSocket subscriptions.
This prevents information leakage via notifications to unauthorized users.

- Add authorizeSubscription callback for solid-ws
- Check ACL read access before allowing subscription
- Deny subscription returns 'err <url> forbidden'
- Currently treats all WS connections as anonymous (TODO: auth integration)

Depends on: nodeSolidServer/node-solid-ws#29
Fixes nodeSolidServer#1334
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add authorization callback for subscription requests

1 participant