Giter Club home page Giter Club logo

mobility-data-space's Introduction

Mobility Data Space

This repository is for documentation around the Mobility Data Space

Overview

Please follow our Wiki section to find information on the technical infrastructure of the MDS and on the steps required to access the MDS.

Questions and Discussions

You can raise your questions, comments or further topics in the section Discussions as well as raise your incidents in the Issues section.

mobility-data-space's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

mobility-data-space's Issues

Empty Broker index

After restarting the broker services (due to vm server update) I'm getting the following resonse:

{
  "reason": {
    "properties": null,
    "@id": "https://w3id.org/idsa/code/NOT_FOUND"
  },
  "payload": "The index is empty - your query could not be evaluated.",
  "type": "de.fraunhofer.iais.eis.RejectionMessageImpl"
}

when querying for all connectors.
My query looks like this:

PREFIX ids: <https://w3id.org/idsa/core/>
            SELECT ?url WHERE { ?x a ids:ConnectorEndpoint .
            ?x ids:accessURL ?url }

Environment: Test

It seems like some indexes do not survive a restart. While others do.

Wrong access url for resources at the Broker

The ResourceUpdateMessage to the broker contains the following access URL:

"ids:resourceEndpoint" : [ {
    "@type" : "ids:ConnectorEndpoint",
    "@id" : "https://w3id.org/idsa/autogen/connectorEndpoint/774bf209-2838-496c-a767-8a937d7c0c0d",
    "ids:endpointDocumentation" : [ {
      "@id" : ""
    } ],
    "ids:accessURL" : {
      "@id" : "https://dwd-connector.test.mobilitydataspace.io/api/offers/a4b65b3a-ad49-40bc-a53d-ddd520ce28b3"
    }
  } ],

At the Broker UI when selecting "Show/Hide JSON-LD" then the following access URL is shown:

  "ids:resourceEndpoint" : [ {
    "@type" : "ids:ConnectorEndpoint",
    "@id" : "https://broker.test.mobilitydataspace.io/connectors/-2112239284/1892992344/-1879389662/-109976723",
    "ids:accessURL" : {
      "@id" : "https://broker.test.mobilitydataspace.io/connectors/-2112239284/1892992344/-1879389662"
    },
    "http://www.w3.org/2002/07/owl#sameAs" : {
      "@id" : "https://w3id.org/idsa/autogen/connectorEndpoint/774bf209-2838-496c-a767-8a937d7c0c0d"
    }
  } ],

Which is not where the consumer can consume the resource.
Expected: The access URL that is sent to the broker should be shown here.
Environment: Test

Double encoding of datasource url query parameters

Issue

Datasource URL parameters on an asset appear to be url-encoded twice, resulting in invalid queries at the datasource.

Steps:

  1. I have a datasource that accepts a date query parameter in the format 2023-10-13T00:00:00.000Z
  2. Using the mds ui dashboard I added an asset that had a query parameter name: since, value: 2023-10-13T00:00:00.000Z
  3. Set up a contract for the asset using the open policy
  4. Negotiated and attempted a transfer using a different broker

The transfer failed, with the datasource reporting bad-request. The query received by the datasource was https://...?since=2023-10-13T00%3A00%3A00.000Z

which appeared to be the datasource not decoding the url. However, the ingress logs showed the inbound request as

https://...?since=2023-10-13T00%253A00%253A00.000Z

indicating that the '%' char has been url encoded. Looking at the EDC database table edc_assets_dataaddress the query parameter is stored in it's url encoded form as 2023-10-13T00%3A00%3A00.000Z

So it appears that the url is being encoded twice: once when being stored in the edc database, then again when being sent to the datasource.

Expected Result

The datasource ingress receives https://...?since=2023-10-13T00%3A00%3A00.000Z, which can be correctly decoded to https://...?since=2023-10-13T00:00:00.000Z

Clearing House returns 404 Error

Based on the 3. Step (Configuration) wiki page, it is necessary to configure the Mobility Dataspace Clearing House in the IDS connector. This doesn't work as expected.

Steps to reproduce the error

  1. Setting up a Dataspace Connector (DSC) as described
  2. Add the clearing.house.url=https://clearing.test.mobility-dataspace.eu/logs/messages/ attribute to the resources/application.properties file
  3. (Re-)starting the DSC
  4. Requesting a resource
  5. Problem occurs

Logs
As shown in the DSC logs, the requests against the Test Clearing House fails with a 404 response code. Examples:

INFO - Sending request to https://clearing.test.mobility-dataspace.eu/logs/messages/process/a86e5752-9a2c-4765-8aed-0b04088567e3 ...
WARN - Received response but response-code not in 200-299. [code=(IMSMEW0046), response-code=(404)]

INFO - Sending request to https://clearing.test.mobility-dataspace.eu/logs/messages/messages/log/a86e5752-9a2c-4765-8aed-0b04088567e3 ...
WARN - Received response but response-code not in 200-299. [code=(IMSMEW0046), response-code=(404)]

INTERNAL_RECIPIENT_ERROR when trying to register a resource with DSC 6 at the Test Broker

The following error occurs when trying to register the DB Connector resource at the broker:

{
  "reason": {
    "properties": null,
    "@id": "https://w3id.org/idsa/code/INTERNAL_RECIPIENT_ERROR"
  },
  "payload": "500 - Server Error",
  "type": "de.fraunhofer.iais.eis.RejectionMessageImpl"
}

And the Broker logs:

17-08-2021 14:41:23.644 [http-nio-8080-exec-10] WARN  org.apache.jena.riot.system.ErrorHandlerFactory$ErrorLoggerlogWarning - Language not valid: https://w3id.org/idsa/code/en
 17-08-2021 14:41:23.646 [http-nio-8080-exec-10] WARN  org.apache.jena.riot.system.ErrorHandlerFactory$ErrorLoggerlogWarning - Language not valid: https://w3id.org/idsa/code/en
 17-08-2021 14:41:23.648 [http-nio-8080-exec-10] WARN  org.apache.jena.riot.system.ErrorHandlerFactory$ErrorLoggerlogWarning - Language not valid: https://w3id.org/idsa/code/en
 17-08-2021 14:41:23.649 [http-nio-8080-exec-10] WARN  org.apache.jena.riot.system.ErrorHandlerFactory$ErrorLoggerlogWarning - Language not valid: https://w3id.org/idsa/code/en
 17-08-2021 14:41:23.684 [http-nio-8080-exec-10] INFO  de.fraunhofer.iais.eis.ids.component.ecosystemintegration.daps.DapsSecurityTokenProvidergetSecurityToken - Token needs to be fetched anew from DAPS
 17-08-2021 14:41:24.036 [http-nio-8080-exec-10] INFO  de.fraunhofer.iais.eis.ids.component.ecosystemintegration.daps.ClaimsVerifierverify - Verifying token's claims
 17-08-2021 14:41:24.038 [http-nio-8080-exec-10] WARN  de.fraunhofer.iais.eis.ids.connector.commons.broker.SameOriginResourceMapValidationStrategyvalidate - SameOriginValidation not yet implemented for Resources
 17-08-2021 14:41:24.040 [http-nio-8080-exec-10] INFO  de.fraunhofer.iais.eis.ids.component.core.logging.MessageLoggerlogMessage - ResourceUpdateMessage received from https://w3id.org/idsa/autogen/baseConnector/44e25978-17b0-4aa2-886c-206cb1f8a01f (called by de.fraunhofer.iais.eis.ids.component.core.logging.MessageLogger)
affectedResource: https://db-connector.test.mobilitydataspace.io/api/offers/4d8e7a38-b05f-4ad4-a649-faf29fa703c8
 17-08-2021 14:41:24.042 [http-nio-8080-exec-10] INFO  de.fraunhofer.iais.eis.ids.component.core.logging.MessageLoggerlogMessage - Payload hash: -207529865
 17-08-2021 14:41:24.061 [http-nio-8080-exec-10] WARN  org.apache.jena.riot.system.ErrorHandlerFactory$ErrorLoggerlogWarning - Language not valid: https://w3id.org/idsa/code/en
 17-08-2021 14:41:24.062 [http-nio-8080-exec-10] WARN  org.apache.jena.riot.system.ErrorHandlerFactory$ErrorLoggerlogWarning - Language not valid: https://w3id.org/idsa/code/en
 17-08-2021 14:41:24.063 [http-nio-8080-exec-10] WARN  org.apache.jena.riot.system.ErrorHandlerFactory$ErrorLoggerlogWarning - Language not valid: https://w3id.org/idsa/code/en
 17-08-2021 14:41:24.065 [http-nio-8080-exec-10] WARN  org.apache.jena.riot.system.ErrorHandlerFactory$ErrorLoggerlogWarning - Language not valid: https://w3id.org/idsa/code/en
 17-08-2021 14:41:24.098 [http-nio-8080-exec-10] INFO  de.fraunhofer.iais.eis.ids.broker.core.common.persistence.ResourcePersistenceAndIndexingupdated - Rewrote resource. New URI: https://broker.test.mobilitydataspace.io/connectors/-948952036/-1269292824/-1227530099
 17-08-2021 14:41:24.114 [http-nio-8080-exec-10] WARN  org.apache.jena.riot.system.ErrorHandlerFactory$ErrorLoggerlogWarning - Language not valid: https://w3id.org/idsa/code/en
 17-08-2021 14:41:24.116 [http-nio-8080-exec-10] WARN  org.apache.jena.riot.system.ErrorHandlerFactory$ErrorLoggerlogWarning - Language not valid: https://w3id.org/idsa/code/en
 17-08-2021 14:41:24.118 [http-nio-8080-exec-10] WARN  org.apache.jena.riot.system.ErrorHandlerFactory$ErrorLoggerlogWarning - Language not valid: https://w3id.org/idsa/code/en
 17-08-2021 14:41:24.120 [http-nio-8080-exec-10] WARN  org.apache.jena.riot.system.ErrorHandlerFactory$ErrorLoggerlogWarning - Language not valid: https://w3id.org/idsa/code/en
org.apache.jena.atlas.web.HttpException: 500 - Server Error
	at org.apache.jena.riot.web.HttpOp.exec(HttpOp.java:1089)
	at org.apache.jena.riot.web.HttpOp.execHttpPost(HttpOp.java:721)
	at org.apache.jena.rdfconnection.RDFConnectionRemote.lambda$doPutPost$9(RDFConnectionRemote.java:458)
	at org.apache.jena.rdfconnection.RDFConnectionRemote.exec(RDFConnectionRemote.java:668)
	at org.apache.jena.rdfconnection.RDFConnectionRemote.doPutPost(RDFConnectionRemote.java:453)
	at org.apache.jena.rdfconnection.RDFConnectionRemote.load(RDFConnectionRemote.java:366)
	at de.fraunhofer.iais.eis.ids.index.common.persistence.RepositoryFacade.addStatements(RepositoryFacade.java:143)
	at de.fraunhofer.iais.eis.ids.broker.core.common.persistence.ResourcePersistenceAndIndexing.addToTriplestore(ResourcePersistenceAndIndexing.java:256)
	at de.fraunhofer.iais.eis.ids.broker.core.common.persistence.ResourcePersistenceAndIndexing.updated(ResourcePersistenceAndIndexing.java:181)
	at de.fraunhofer.iais.eis.ids.broker.core.common.persistence.ResourceMessageHandler.handleValidated(ResourceMessageHandler.java:84)
	at de.fraunhofer.iais.eis.ids.broker.core.common.persistence.ResourceMessageHandler.handleValidated(ResourceMessageHandler.java:22)
	at de.fraunhofer.iais.eis.ids.connector.commons.messagevalidation.ValidatingMessageHandler.handle(ValidatingMessageHandler.java:28)
	at de.fraunhofer.iais.eis.ids.component.core.MessageDispatcher.handle(MessageDispatcher.java:86)
	at de.fraunhofer.iais.eis.ids.component.core.MessageDispatcher.lambda$dispatch$2(MessageDispatcher.java:51)
	at java.base/java.util.Optional.map(Optional.java:265)
	at de.fraunhofer.iais.eis.ids.component.core.MessageDispatcher.dispatch(MessageDispatcher.java:51)
	at de.fraunhofer.iais.eis.ids.component.core.DefaultComponent.process(DefaultComponent.java:45)
	at de.fraunhofer.iais.eis.ids.component.interaction.multipart.MultipartComponentInteractor.process(MultipartComponentInteractor.java:87)
	at de.fraunhofer.iais.eis.ids.component.protocol.http.server.ComponentController.processMessage(ComponentController.java:237)
	at de.fraunhofer.iais.eis.ids.component.protocol.http.server.ComponentController.infrastructureLevelCommunication(ComponentController.java:205)
	at jdk.internal.reflect.GeneratedMethodAccessor64.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:189)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:908)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:665)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1589)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.base/java.lang.Thread.run(Thread.java:829)
 17-08-2021 14:41:24.133 [http-nio-8080-exec-10] ERROR de.fraunhofer.iais.eis.ids.component.core.MessageDispatcherhandle - Internal error occurred.
de.fraunhofer.iais.eis.ids.component.core.RejectMessageException: org.apache.jena.atlas.web.HttpException: 500 - Server Error
	at de.fraunhofer.iais.eis.ids.broker.core.common.persistence.ResourceMessageHandler.handleValidated(ResourceMessageHandler.java:110)


	at de.fraunhofer.iais.eis.ids.broker.core.common.persistence.ResourceMessageHandler.handleValidated(ResourceMessageHandler.java:22)


	at de.fraunhofer.iais.eis.ids.connector.commons.messagevalidation.ValidatingMessageHandler.handle(ValidatingMessageHandler.java:28)


	at de.fraunhofer.iais.eis.ids.component.core.MessageDispatcher.handle(MessageDispatcher.java:86)


	at de.fraunhofer.iais.eis.ids.component.core.MessageDispatcher.lambda$dispatch$2(MessageDispatcher.java:51)


	at java.base/java.util.Optional.map(Optional.java:265)


	at de.fraunhofer.iais.eis.ids.component.core.MessageDispatcher.dispatch(MessageDispatcher.java:51)


	at de.fraunhofer.iais.eis.ids.component.core.DefaultComponent.process(DefaultComponent.java:45)


	at de.fraunhofer.iais.eis.ids.component.interaction.multipart.MultipartComponentInteractor.process(MultipartComponentInteractor.java:87)


	at de.fraunhofer.iais.eis.ids.component.protocol.http.server.ComponentController.processMessage(ComponentController.java:237)


	at de.fraunhofer.iais.eis.ids.component.protocol.http.server.ComponentController.infrastructureLevelCommunication(ComponentController.java:205)


	at jdk.internal.reflect.GeneratedMethodAccessor64.invoke(Unknown Source)


	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)


	at java.base/java.lang.reflect.Method.invoke(Method.java:566)


	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:189)


	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)


	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)


	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)


	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)


	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:908)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:665)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)


	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1589)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.apache.jena.atlas.web.HttpException: 500 - Server Error


	at org.apache.jena.riot.web.HttpOp.exec(HttpOp.java:1089)


	at org.apache.jena.riot.web.HttpOp.execHttpPost(HttpOp.java:721)


	at org.apache.jena.rdfconnection.RDFConnectionRemote.lambda$doPutPost$9(RDFConnectionRemote.java:458)


	at org.apache.jena.rdfconnection.RDFConnectionRemote.exec(RDFConnectionRemote.java:668)


	at org.apache.jena.rdfconnection.RDFConnectionRemote.doPutPost(RDFConnectionRemote.java:453)
	at org.apache.jena.rdfconnection.RDFConnectionRemote.load(RDFConnectionRemote.java:366)
	at de.fraunhofer.iais.eis.ids.index.common.persistence.RepositoryFacade.addStatements(RepositoryFacade.java:143)
	at de.fraunhofer.iais.eis.ids.broker.core.common.persistence.ResourcePersistenceAndIndexing.addToTriplestore(ResourcePersistenceAndIndexing.java:256)
	at de.fraunhofer.iais.eis.ids.broker.core.common.persistence.ResourcePersistenceAndIndexing.updated(ResourcePersistenceAndIndexing.java:181)
	at de.fraunhofer.iais.eis.ids.broker.core.common.persistence.ResourceMessageHandler.handleValidated(ResourceMessageHandler.java:84)
	... 63 common frames omitted

Environement: Test

Authentication in the IDS Connector should be Configurable

Is your feature request related to a problem? Please describe.
Currently the Authorization Requests are mapped inside the class io.dataspaceconnector.config.ConfigurationAdapter.
This approach overrides properties passed as parameters in the i.e. application.properties configuration file.

A typical case is when a user wants to handle Access rights through different user authentication system i.e. Keycloak.
In this case, a general solution is to disable the authentication by adding the following parameters to the application.properties:

security.ignored=/**
spring.security.enabled=false
management.security.enabled=false
security.basic.enabled=false

However, this approach will not work, because the URL Authorization Requests mappings are hardcoded:

 http
                .sessionManagement()
                    .sessionCreationPolicy(SessionCreationPolicy.STATELESS)
                    .and()
                .authorizeRequests()
                .antMatchers("/", "/api/ids/data").anonymous()
                .antMatchers("/api/subscriptions/**").authenticated()
                .antMatchers("/api/**").hasRole("ADMIN")
                .antMatchers("/actuator/**").hasRole("ADMIN")
                .antMatchers("/database/**").hasRole("ADMIN")
                .anyRequest().authenticated()
                .and()
                .csrf().disable()
                .httpBasic()
                .authenticationEntryPoint(authenticationEntryPoint());
        http.headers().xssProtection();

Describe the solution you'd like
Pass the configuration of Authorization Requests through applicaton.properties or configuration files.

This feature request was also posted in the DaspaceConnector:
International-Data-Spaces-Association/DataspaceConnector#627

Extension of the string length for the Connector Description up to 1000 characters

Currently the string length for connector descriptions is restricted to 255 characters.
The string length of the connector description in at least one Use Case, which is already implemented, is 336 characters.
Currently there is no possibility to publish this description.
I would suggest to extend the string length for this field up to at least 1000 characters.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.