720 Commits

Author SHA1 Message Date
Ruben Verborgh
9c52011add fix: Accept lowercase Authorization tokens. 2021-12-03 12:07:00 +01:00
Joachim Van Herwegen
11192ed4df Merge branch 'main' into versions/3.0.0 2021-11-22 09:20:41 +01:00
Ruben Verborgh
c13456c225 fix: Make UnionCredentialsExtractor tolerate failures.
Fixes https://github.com/solid/community-server/issues/1031
2021-11-11 12:48:39 +00:00
Joachim Van Herwegen
fc60b5c161 feat: Update IDP parameters to latest Solid-OIDC version 2021-11-08 11:39:16 +01:00
Joachim Van Herwegen
4d319d2564 fix: Handle JSON preferences correctly in dynamic converter 2021-11-08 10:16:28 +01:00
Joachim Van Herwegen
c6544fac1d fix: Prefer all inputs equally when generating quads 2021-11-08 10:16:28 +01:00
Ruben Verborgh
ed287ffade test: Add content negotiation integration tests 2021-11-08 10:16:28 +01:00
Joachim Van Herwegen
d52aa94e53 feat: Add "no conversion" as possible path in ChainedConverter 2021-11-08 10:16:28 +01:00
Joachim Van Herwegen
fdd42bb7b3 feat: Add ContentTypeReplacer to conversion chain 2021-11-08 10:16:28 +01:00
Joachim Van Herwegen
fa94c7d4bb feat: Determine Typed Converter output based on input type 2021-11-08 10:16:28 +01:00
Joachim Van Herwegen
27306d6e3f refactor: Create BaseTypedRepresentationConverter 2021-11-08 10:16:28 +01:00
Renovate Bot
2e99cc9934 fix(deps): update dependency sparqlalgebrajs to v4 2021-11-05 16:07:20 +01:00
Joachim Van Herwegen
9f0973b039 fix: Linter warnings 2021-11-05 15:59:28 +01:00
Ruben Verborgh
b42150cf52 fix: Allow URLs with multiple leading slashes.
Fixes https://github.com/solid/community-server/issues/1025
2021-10-25 23:42:16 +02:00
Ruben Verborgh
2e4589938f
feat: Display symlinks in container listings.
Closes https://github.com/solid/community-server/issues/1015
2021-10-21 17:26:54 +01:00
Wout Slabbinck
54ccbed48d fix: Added a content-type parser to HeaderUtil
* fixes #995

* fixed the remarks and added a test for parseContentType

* refactor: remove unnecessary comment

Co-authored-by: woutslabbinck <wout.slabbinck@ugent.com>
2021-10-15 13:13:37 +02:00
Ruben Verborgh
6d985a65d0 chore: Update configs to v2.0.0. 2021-10-15 10:50:32 +02:00
Joachim Van Herwegen
fb3a59c054 fix: Return 409 when there is a slash semantics issue 2021-10-15 09:15:49 +02:00
Joachim Van Herwegen
76c87bb56a fix: Return 201 when creating new resources 2021-10-12 15:44:31 +02:00
Joachim Van Herwegen
5613ff9e71 fix: Let Representations always have a body
This is relevant when the request has a content-type
but no data.
2021-10-12 13:30:06 +02:00
Joachim Van Herwegen
b3da9c9fcf refactor: Restructure source code folder
This way the location of certain classes should make more sense
2021-10-12 12:51:02 +02:00
Joachim Van Herwegen
012d9e0864 Merge branch 'main' into versions/2.0.0 2021-10-11 15:35:54 +02:00
Joachim Van Herwegen
d2f6141c29 chore: Run conformance tests on upcoming version 2021-10-11 15:33:18 +02:00
Joachim Van Herwegen
7c7fee5f5c refactor: Rename associated resource to subject resource 2021-10-08 15:49:49 +02:00
Joachim Van Herwegen
13c49045d4 feat: Support acl authorization for IDP components
Configuration has been updated so the IDP requests
also pass through an Authorization component.
A new config option was added to choose
which authorization scheme to use for the IDP.
2021-10-07 15:51:11 +02:00
Joachim Van Herwegen
9968f2ae5b feat: Generalize RootInitializer to ContainerInitializer
The initializer can now be used for any container.
The initializer also does not handle the repeat check anymore,
this is now configured with a ConditionalHandler.
2021-10-07 15:51:11 +02:00
Joachim Van Herwegen
bb7e88b137 refactor: Split HttpHandler behaviour over multiple classes
This allows easier reuse of certain reoccurring behaviours,
such as authorization.
The AuthenticatedLdpHandler is no longer required
since it is a combination of parsing and authorization.
This did require a small change to the OperationHandler interface.
2021-10-07 15:51:11 +02:00
Joachim Van Herwegen
8f5d61911d feat: Always grant control permissions to pod owners 2021-10-05 13:19:01 +02:00
Joachim Van Herwegen
6c4ccb334d feat: Store account settings separately
Account settings are stored using the WebID as key.
Reason for using the WebID is that this allows faster access to the settings
in authenticated requests.
A consequence of this is that passwords are now always required during registration,
and that there can only be 1 account per WebID.
2021-10-05 13:19:01 +02:00
Joachim Van Herwegen
7f8b923399 feat: Replace acl specific permissions with generic permissions
This required AuxiliaryStrategy to have a new function
indicating if the auxiliary resource just used its associated resource authorization
or its own.
2021-09-28 13:06:38 +02:00
Joachim Van Herwegen
5104cd56e8 feat: Create OperationMetadataCollector to handle operation metadata 2021-09-28 13:06:38 +02:00
Joachim Van Herwegen
bf28c83ffa feat: Use PermissionReaders to determine available permissions
These readers will determine which permissions
are available for the incoming credentials.
Their results then get combined in a UnionReader
and authorized in a PermissionBasedAuthorizer
2021-09-28 13:06:38 +02:00
Joachim Van Herwegen
e8dedf5c23 feat: Extract set of required modes instead of PermissionSet 2021-09-28 13:06:38 +02:00
Joachim Van Herwegen
ba1886ab85 feat: Combine the results of multiple CredentialsExtractors 2021-09-28 13:06:38 +02:00
Joachim Van Herwegen
62f026f2bc feat: Create UnionHandler to combine AsyncHandler results 2021-09-28 13:06:38 +02:00
Joachim Van Herwegen
c3fa74de78 feat: Let CredentialsExtractors specify what type of Credentials they generate 2021-09-28 13:06:38 +02:00
Ruben Verborgh
34a44d1636 feat: Adjust copy for setup. 2021-09-27 10:32:34 +02:00
Joachim Van Herwegen
b592d449eb feat: Integrate setup behaviour
This adds options for enabling setup to the config folder.
All default configs with permanent storage (file/sparql)
are configured to require setup at server start.
Memory-based configs merely have it as an option.
2021-09-27 10:32:34 +02:00
Joachim Van Herwegen
4e1a2f5981 feat: Create SetupHttpHandler
This handler allows users to set up servers with a pod
and without having to enable public access first
2021-09-27 10:32:34 +02:00
Joachim Van Herwegen
02df2905de feat: Create RedirectAllHttpHandler
This handler will redirect all requests to a specific URL
2021-09-27 10:32:34 +02:00
Joachim Van Herwegen
facf691e86 feat: Create ConditionalHandler
This handler rejects all inputs once a certain condition is met
2021-09-27 10:32:34 +02:00
Joachim Van Herwegen
fb0b50c997 fix: Make the RouterHandler more robust
It now extracts paths based on the base URL
and allows catching all methods.
2021-09-27 10:32:34 +02:00
Joachim Van Herwegen
42d3ab0a4c fix: Add filename parameter for EJS templates
This is required if we want to include partial templates
2021-09-27 10:32:34 +02:00
Joachim Van Herwegen
ef9703e284 feat: Patch containers by recreating Representation from metadata
Also included is a change to the Patching architecture.
Patching is now done by RepresentationPatchers that take a Representation as input.
2021-09-16 13:39:11 +02:00
Joachim Van Herwegen
a1c3633a25 fix: Only check DataAccessor canHandle call for Documents 2021-09-16 13:39:11 +02:00
Joachim Van Herwegen
0271133d33 fix: Hide internal data by making it auxiliary 2021-09-14 10:51:37 +02:00
Joachim Van Herwegen
e31cd38bc5 feat: Provide details field when throwing Token ownership error 2021-09-08 13:55:52 +02:00
Joachim Van Herwegen
cc1c3d9223 feat: Support JSON errors
The IDP behaviour has been changed to move all error related knowledge
to the IdentityProviderHttpHandler instead of managing it
in the Interactionhandlers.
2021-09-08 13:55:52 +02:00
Joachim Van Herwegen
bbfbfbbce4 refactor: Move InteractionRoute behaviour to separate class 2021-09-08 13:55:52 +02:00
Joachim Van Herwegen
3542fe29da feat: Remove useless fields from IDP JSON response 2021-09-08 13:55:52 +02:00