我正在尝试通过 Fuseki 端点将联合查询与 Jena 一起使用。在我的 SPARQL 查询中使用SERVICE关键字,我连接到一个 Stardog 端点。由于它是一个安全 URL,因此端点指定如下:http://admin:admin@url。由于这不安全,Jena 显示以下消息:
Code: 36/HAS_PASSWORD in USER: Including passwords in URIs is deprecated.
根据文档,您可以为凭据指定srv:queryAuthUser和srv:queryAuthPwd。有没有办法直接在 SPARQL 查询中执行此操作?或者,可以在 Fuseki(ttl 文件)中配置吗?
编辑
当我使用@RobV 的解决方案时,服务上下文似乎没有被拾取。这是上下文的样子:
symbol:http://jena.hpl.hp.com/ARQ#regexImpl = symbol:http://jena.hpl.hp.com/ARQ#javaRegex
symbol:http://jena.hpl.hp.com/ARQ#constantBNodeLabels = true
symbol:http://jena.hpl.hp.com/ARQ#strictGraph = false
symbol:http://jena.hpl.hp.com/ARQ#strictSPARQL = false
symbol:http://jena.hpl.hp.com/ARQ#stageGenerator = com.hp.hpl.jena.tdb.solver.StageGeneratorDirectTDB@6f2dd58d
symbol:http://jena.hpl.hp.com/ARQ#enablePropertyFunctions = true
symbol:http://jena.hpl.hp.com/ARQ#romanNumerals = false
symbol:http://jena.hpl.hp.com/ARQ#optFilterPlacement = false
symbol:http://jena.hpl.hp.com/ARQ#registryPropertyFunctions = com.hp.hpl.jena.sparql.pfunction.PropertyFunctionRegistry@6f05ca41
symbol:http://jena.hpl.hp.com/ARQ/system#opExecutorFactory = com.hp.hpl.jena.tdb.solver.OpExecutorTDB$1@2a1f5501
当我保留 Fuseki 配置并在我的业务层中添加服务上下文时,似乎确实添加了服务上下文:
symbol:http://jena.hpl.hp.com/Service#serviceContext = {http://host:5820/db/query=symbol:http://jena.hpl.hp.com/Service#queryAuthPwd = usr
symbol:http://jena.hpl.hp.com/Service#queryAuthUser = pwd}
不管怎样,当我执行联合查询时,我仍然会收到未经授权的消息。