110 Commits

Author SHA1 Message Date
Joachim Van Herwegen
12e501844f fix: Prevent generated metadata from being stored 2021-07-05 14:33:20 +02:00
Joachim Van Herwegen
35a7cf988c feat: Support metadata in multiple graphs 2021-07-05 14:33:20 +02:00
Joachim Van Herwegen
5edbbc1958 chore: Update dependencies 2021-06-30 10:24:13 +02:00
Joachim Van Herwegen
7cfb87e516 feat: Add better support for non-native errors 2021-06-14 15:29:47 +02:00
Joachim Van Herwegen
ded263a81d fix: Support empty PATCH requests 2021-06-10 16:19:33 +02:00
Joachim Van Herwegen
e3c5b39752 feat: Create WWW-Authenticate metadata writer 2021-06-07 14:40:05 +02:00
Joachim Van Herwegen
57d77e941d feat: Integrate ErrorHandler and remove ResponseWriter error support 2021-06-07 13:54:38 +02:00
Joachim Van Herwegen
e1f95877da feat: Create ErrorHandler to convert errors to Representations 2021-06-07 13:54:38 +02:00
Joachim Van Herwegen
9666f6dd6a feat: Update MetadataParsers to be AsyncHandlers
This way the MetadataExtractor class is not needed anymore
after a small change in the request parser.
2021-05-19 09:40:40 +02:00
Joachim Van Herwegen
52a3b84ee0 fix: Support missing type preferences in ChainedConverter 2021-05-12 12:53:26 +02:00
jaxoncreed
1d65143e89
feat: Add identity provider (#455)
* Add identity provider handler as a dependency

* Temp Identity

* Figured out how to get koa to work

* Hooked up idp to networking

* Feat/idp architecture refactor (#430)

* Logs in with solid oidc

* Refactored Provider

* Attempt to hook up dependencies

* Partial wiring of oidc provider components

* IdP networking now works with architecture

* Interaction Handlers Set Up

* fix: Rename & adapt to CSS

* Included Login Interaction

* Refactored architecture to bind Interaction Policy to HttpHandlers

Co-authored-by: Matthieu Bosquet <matthieubosquet@gmail.com>

* fix: Rebase on master

* fix: DI after rebase

* Reimplemented Routing

* Renamed modules and removed ProviderFactory (#450)

* refactor: Solid IdP DI

* refactor: IdP interaction handler DI

* refactor: IdP interaction waterfall

* refactor: Remove unnecessary legacy URL parse

* fix: Add legacy parse back in

* feat: adapter & fix: handlers

* Removed adapter factory

* fix: refactor IdP

* fix: refactor IdP

* fix: refactor IdP

* feat: Add IdP to file storage config

* fix: Unintended commit

* fix: Components ignore

* feat: Basic resource store adapter

* Partially complete idp routing

* Set up initial routing injection graph

* Clean up ResourceStorageAdapter

* Refactored configuration architecture

* Hooked up Login UIs (#518)

* feat: Use template path & run fileserver

* feat: Use util function to read resource

* Fixed DI JSON-LD context

* fixed rendering

* WebId validator

* Set up persistent storage for loing and register

* Fixed ejs template routing

* Refactored StorageAdapters

* NSS login successful

* Forgot password infrastructure

* Can send email (#557)

* Can send email

* fix: IdP crashes if interaction ID doesn't exist (#587)

* feat: Require an issuer registration token

* fix: Issuer registration token typo in error

* fix: Remove dummy IdP storage adapter

* fix: Remove unused library lodash

* fix: Remove unused library lru-cache

* Production ready keystore

* Ruben comments before clownface removal

* Removed clownface

* Change key value store

* Completed Ruben's comments

* Added comments to each class

* Fixed errors on login

* Ruben feedback

* Refactored out getPostRenderHandler

* Identity provider tests (#622)

* corrected tests lacking <void> on promises

* Added files for all idp tests

* Added unfinished tests for all added files

* ErrorHandlingWaterfallHandler

* RenderEjsHandler and RouterHandler tests

* GetPostRouterHandler and BasicOnErrorHandler tests

* Corrected tests for updates to Idp

* fix: missing export

* fix: audience claim

* Client Id Support (#630)

* Added client_id for the auth challenge

* Update src/identity/storage/ClientWebIdFetchingStorageAdapterFactory.ts

Co-authored-by: Matthieu Bosquet <matthieubosquet@gmail.com>

Co-authored-by: Matthieu Bosquet <matthieubosquet@gmail.com>

* fix: Rebase fixes

* Several minor Idp changes/refactors (#656)

* fix: Minor changes

* refactor: Split EmailPasswordInteractionPolicy

* refactor: Remove ErrorHandlingWaterfallHandler

* refactor: Clean up dependencies

* fix: Add dummy IdentityProviderHandler to fix integration tests

* Replace KeyValueStore with KeyValueStorage (#663)

* feat: Create WrappedExpiringStorage

* refactor: Update ResourceStoreEmailPasswordStore to use KeyValueStorage

* refactor: Update KeyGeneratingIdpConfigurationGenerator to use KeyValueStorage

* refactor: Update ResourceStoreStorageAdapterFactory to use ExpiringStorage

* refactor: Removed KeyValueStore

* refactor: Simplify EmailPassword handlers (#664)

* refactor: Order index.ts

* test: Add EmailPasswordForgotPasswordHandler unit tests

* test: Add EmailPasswordGetResetPasswordHandler unit tests

* test: Add EmailPasswordLoginHandler unit tests

* test: Add EmailPasswordRegistrationHandler unit tests

* test: Add EmailPasswordResetPasswordHandler unit tests

* test: Remove unnecessary test file

* feat: Basic instructions for using the IdP

* fix: IdP instructions and add example WebID

* fix: IdP registration copy

* fix: IdP instruction editorial

* Update README.md

Co-authored-by: Joachim Van Herwegen <joachimvh@gmail.com>

* Update README.md

Co-authored-by: Joachim Van Herwegen <joachimvh@gmail.com>

* test: Add KeyGeneratingIdpConfigurationGenerator unit tests

* test: Add KeyValueEmailPasswordStore unit tests

* test: Create IdP integration test

* test: Add EmailPasswordInteractionPolicy unit tests

* test: Add BasicIssuerReferenceWebIdOwnershipValidator unit tests

* test: Add ChooseInitialInteractionHandler unit tests

Also fixes the config warning.

* test: Add EjsTemplateRenderer unit tests

* test: Add EmailSender unit tests

* test: Add FormDataUtil unit tests

* test: Add IdpRouteController unit tests

* test: Add OidcInteractionCompleter unit tests

* refactor: Simplify ClientWebIdFetchingStorageAdapterFactory

* test: Add ClientWebIdFetchingStorageAdapterFactory unit tests

* refactor: Fix ejs html warnings

* test: Add step to test logging in again

Included are updates to handle cookies more correctly.

* feat: Add IdpConfirmHttpHandler

This way there's a handler for the confirm page.

* test: Add ExpiringStorageAdapterFactory unit tests

* test: Add IdentityProviderFactory unit tests

* test: Add IdentityProviderHttpHandler unit tests

* refactor: Minor refactors

* refactor: Use jose instead of node-jose

* refactor: Use jose instead of node-jose

Reduces the number of dependencies since other libraries
also depend on jose.

* Update src/identity/configuration/KeyGeneratingIdpConfigurationGenerator.ts

Co-authored-by: Matthieu Bosquet <matthieubosquet@gmail.com>

* refactor: Use interfaces instead of abstract classes

* refactor: Make WebIdOwnershipValidator an AsyncHandler

* refactor: Make TemplateRenderer an AsyncHandler

* fix: Fix typing issue

* fix: Convert JWK to plain object for node 15

* feat: Update CI configuration

--ignore-scripts was removed because it also stopped dependency scripts,
which was a requirement for bcrypt.
15.0 was removed since that version doesn't run the required scripts after install.
14.0 was removed since the somehow it caused the solid-authn client to do the wrong calls.

* test: Run integration tests on Node 14.2

This is the lowest 14.x version where the IdP integration tests succeed.

* feat: Use ErrorResponseWriter for handling oidc errors

* test: Mock Date in OidcInteractionCompleter tests

* fix: Correctly generate new identifiers

Previously there could be double slashes if the base URL ended in slash.

* fix: Correctly handle storagePathName in ExpiringStorageAdapterFactory

* fix: Fix issue with new CliRunner test in rebase

* fix: Handle unknown errors more consistently

* feat: Make idp parameter dynamic

* feat: Add more logging

* refactor: Link css instead of injecting

* fix: Fix redis integration tests with idp

* refactor: Shorten idp class names

* refactor: Remove e-mail configuration from default config

* feat: Store JsonResourceStorage data in a single container

* feat: Make sure expired data gets removed at some point

* feat: Only accept strings as keys in KeyValueStorage

* fix: Various minor fixes based on review

Co-authored-by: Matthieu Bosquet <matthieubosquet@gmail.com>
Co-authored-by: Joachim Van Herwegen <joachimvh@gmail.com>
2021-05-04 13:17:43 +02:00
Brandon Aaron
de51a231e3
feat: Fallback to X-Forwarded-* headers
* Fallback to X-Forwarded-* headers

This uses the first value from X-Forwarded-Host and
X-Forwarded-Proto if they're present and the standard Forwarded
header is not.

* Update parseForwarded to handle X-Forwarded-*

This updates the signature for parseForwarded to take in the headers
and handle the logic of falling back to X-Forwarded-* headers.

* Update src/util/HeaderUtil.ts

Co-authored-by: Ruben Verborgh <ruben@verborgh.org>

* Inline parseXForwarded helper

Additionally fixes a typo, updates a unit test, and removes a
typing that is no longer necessary.

* Tweak handling of X-Forwarded value checking and assignment

* Fix: terminology & consistency suggestions from review

Co-authored-by: Ruben Verborgh <ruben@verborgh.org>

Co-authored-by: Ruben Verborgh <ruben@verborgh.org>
Co-authored-by: Wouter Termont <woutermont@gmail.com>
2021-03-23 12:44:43 +01:00
Arthur Joppart
ee88bf14de
feat: Added cloneRepresentation function to ResourceUtil
* feat: added cloneRepresentation function to ResourceUtil

* fix: adapted to review

* fix: adapted to review

Co-authored-by: Arne Vandoorslaer <arne@digita.ai>
2021-03-04 08:43:53 +01:00
Matthieu Bosquet
23473f59e6 fix: SPARQL body parser test content type metadata 2021-02-26 15:51:35 +01:00
Matthieu Bosquet
2a34a430fa fix: SPARQL PATCH Content Type 2021-02-26 15:51:35 +01:00
Ruben Verborgh
6edc255707 feat: Make stores return modified resources. 2021-02-24 12:04:42 +01:00
Joachim Van Herwegen
139342470e feat: Add WAC-Allow header when required 2021-02-18 14:13:47 +01:00
Joachim Van Herwegen
f2f265c586 feat: Let Authorizers output an Authorization 2021-02-18 14:13:47 +01:00
Joachim Van Herwegen
8ccc68d29c feat: Add acl link headers based on headers instead of hardcoding 2021-02-18 13:26:08 +01:00
Joachim Van Herwegen
f87fc61ab0 feat: Support updating multiple metadata values for a predicate 2021-02-18 13:26:08 +01:00
Joachim Van Herwegen
8339413ab4 feat: Add permissions extractor for acl resources 2021-02-18 13:26:08 +01:00
Joachim Van Herwegen
758f5ed083 feat: Generalize AclManager to AuxiliaryManager 2021-02-18 13:26:08 +01:00
Joachim Van Herwegen
d6cdd7dbdf feat: Introduce generic auxiliary resource support 2021-02-18 13:26:08 +01:00
Joachim Van Herwegen
766e6318ba feat: Add control permission to PermissionSet
This is in preparation of generalizing permissions
of auxiliary resources.
2021-02-18 13:26:08 +01:00
Joachim Van Herwegen
c29928c32c fix: Test error classes correctly 2021-01-29 09:40:10 +01:00
Ruben Verborgh
a57105be8e change: Query string does not influence identifier. 2021-01-29 09:12:49 +01:00
Joachim Van Herwegen
93e53b3d24 fix: Only require append permissions on POST requests 2021-01-27 11:54:15 +01:00
Joachim Van Herwegen
2c3300028e feat: Add acl link header writer
This writer will add a link to the corresponding acl file
for all LDP requests.
2021-01-26 11:38:46 +01:00
Ruben Verborgh
fe3957f0ae feat: Add ConstantMetadataWriter. 2021-01-26 10:52:38 +01:00
Joachim Van Herwegen
36761e8124 feat: Support composite PATCH updates 2021-01-18 17:01:24 +01:00
Ruben Verborgh
3a4ec48720 refactor: Rename BasicTargetExtractor to OriginalUrlExtractor. 2021-01-18 09:48:32 +01:00
Joachim Van Herwegen
b642393a15 fix: Have PATCH/POST/PUT operations handlers check content-type 2021-01-15 08:42:36 +01:00
Ruben Verborgh
5bb7822dc7 change: Use solid-0.1 as protocol string.
See https://github.com/solid/solid-spec/pull/230
2021-01-14 15:21:29 +01:00
Ruben Verborgh
16ef86acef fix: Allow Content-Type: 0 on GET.
Fixes https://github.com/solid/community-server/issues/498
2021-01-12 15:50:48 +01:00
Ruben Verborgh
66e636878f feat: Add BasicRepresentation. 2021-01-11 14:23:52 +01:00
Ruben Verborgh
be1af89b56 feat: Add Content-Type constructor to metadata. 2021-01-11 14:03:38 +01:00
Noel De Martin
775aaa79cd fix: Use base IRI when parsing SPARQL update queries
Accept relative references in SPARQL updates
2021-01-11 13:05:56 +01:00
Joachim Van Herwegen
76def28a68 feat: Store target identifier when parsing metadata 2021-01-11 13:05:56 +01:00
Joachim Van Herwegen
f17054c647 refactor: Make request related handle calls consistent 2021-01-11 13:05:56 +01:00
Ruben Verborgh
3b63786ae0 feat: Allow querying metadata. 2021-01-06 11:25:47 +01:00
Ruben Verborgh
4828912593 refactor: Use record for representation preference. 2021-01-04 23:06:52 +01:00
Ruben Verborgh
ae06e99067 refactor: Also create named nodes for vocabularies. 2021-01-02 23:15:51 +01:00
Ruben Verborgh
8e138c36d1 refactor: Use types to create vocabularies. 2021-01-02 22:56:25 +01:00
Ruben Verborgh
a572825909 refactor: Indicate caching on method name. 2021-01-02 17:50:17 +01:00
Ruben Verborgh
accfc2e58d change: Make RepresentationMetadata accept a ResourceIdentifier.
Closes https://github.com/solid/community-server/issues/388
2020-12-11 10:37:36 +01:00
Ruben Verborgh
9c933fd2d4 chore: Build to dist folder.
Closes https://github.com/solid/community-server/issues/136
2020-12-08 09:30:18 +01:00
Ruben Verborgh
ecfe3cfc46 feat: Support the Forwarded header. 2020-12-02 10:23:38 +01:00
Ruben Verborgh
535cbcd93a feat: Add LDP request logging. 2020-12-01 20:00:21 +01:00
Ruben Verborgh
fc3942b372 change: Move WebSocketAdvertiser to middleware. 2020-11-30 00:54:21 +01:00
Ruben Verborgh
af8f1976cd fix: Rename UnsupportedHttpError into BadRequestError. 2020-11-27 14:52:16 +01:00