Authentication Virtuoso端点中SPARQL插入的HTTP请求身份验证
我正试图在已加载到Virtuoso的图形中执行SPARQL插入,通过针对Virtuoso端点的HTTP请求来执行 对于我正在使用的HTTP请求,我已经成功地进行了一些SPARQL Select查询,因此我的问题在于更新图形所需的身份验证过程 经过大量研究,我发现Virtuoso为不同的身份验证过程启用了一些路径:Authentication Virtuoso端点中SPARQL插入的HTTP请求身份验证,authentication,httprequest,sparql,virtuoso,Authentication,Httprequest,Sparql,Virtuoso,我正试图在已加载到Virtuoso的图形中执行SPARQL插入,通过针对Virtuoso端点的HTTP请求来执行 对于我正在使用的HTTP请求,我已经成功地进行了一些SPARQL Select查询,因此我的问题在于更新图形所需的身份验证过程 经过大量研究,我发现Virtuoso为不同的身份验证过程启用了一些路径: http:///sparql-auth(SQL身份验证) http:///sparql-oauth(OAuth) http:///sparql-graph-crud-auth(OAu
(SQL身份验证)http:///sparql-auth
(OAuth)http:///sparql-oauth
(OAuth积垢)http:///sparql-graph-crud-auth
和https:///sparql
(WebID协议)https:///sparql-webid
http:///sparql-auth
我已经能够成功登录并执行插入查询。这意味着(我猜)我的用户没有任何权限问题
但是,当我尝试通过HTTP请求进行验证时,我无法正确验证我的用户,我不知道如何以正确的方式指定用户名和密码
我还发现,Virtuoso在默认情况下激活了摘要身份验证方法,因此我将其更改为/sparql auth
路径上的基本身份验证,因为这是最简单的方法。我已使用http:///conductor
大师的作品
而且,我仍然无法通过HTTP Get请求正确地验证自己,接收HTTP状态码401(未经授权)
这就是我提出请求的方式:
axios.get('http://localhost:8890/sparql-auth?query=' + encodeURIComponent(pruebaInsertQuery),{
auth: { // This is provided by axios, to perform an HTTP Basic auth
username: 'myUserName',
password: 'myPassword'
},
})
.then((response) => {
console.log(response);
})
.catch((error) => {
console.log(error);
});
我已经阅读了Virtuoso的每一篇教程和指南,但我对SPARQL、RDF和Virtuoso的世界还是很陌生,我仍然对一切都迷茫
提前谢谢你
由于一些评论而编辑的问题: 我也尝试过一个Post请求,但没有任何变化 我尝试过的另一种方法是使用
http://myUserName:myPassword@localhost:8890/sparql auth
格式,但我得到了完全相同的响应
我完全不确定是否通过axios
调用和/sparql auth
路径传递了完全相同的字符串。Virtuoso可能会使用一些我没有找到的编码,我找不到Virtuoso的SQL身份验证示例(我尝试使用的身份验证类型),甚至找不到Digest身份验证方法,这是Virtuoso的默认方法
我的Virtuoso.log中没有关于HTTP请求的内容,即使是成功的请求也没有。我将对此进行更多的研究,因为这可能是因为我的配置
谢谢你的帮助
终于找到了获得我想要的结果的方法: 我还没有找到解决我在这里提到的身份验证问题的方法,但我仍然需要进行这些插入,因此我最终完全改变了我的方法,并创建了我自己的Java RESTful服务,作为我的应用程序和Virtuoso之间的中介 我发现Virtuoso为Java提供了一些库,这些库帮助我通过适当的授权连接到Virtuoso。我还必须说,创建服务并不容易,但它最终成功了
我希望这些信息有助于人们更早地思考这种方法,因为它在我的项目中浪费了我大量的时间。正如我所说,我已经解决了通过我的应用程序进行插入的问题,但身份验证问题仍然存在,因此请随意添加有关此主题的任何新注释。您可以执行插入、删除和更新(结合删除和插入)通过任何使用SPARQL更新语言(SPARUL)的Virtuoso实例提供的SPARQL查询服务端点 当然,默认情况下,Virtuoso端点受到保护;这就是为什么
/sparql
不适合您的原因。/sparql更新
端点用于基本摘要身份验证,该身份验证可归结为传统范围的Virtuoso SQL用户帐户
要启用更强大的功能(适用于Web级别的标识),您需要安装Enterprise Edition和模块(由软件包提供)
以下是有关ABAC功能的简单分步指南:
INSERT
或DELETE
我希望这有帮助 Get HTTP请求仅用于请求而不是更新。作为更新插入需要Post请求imo。它也不适用于Post HTTP请求。。。相同的身份验证问题…摘要身份验证链接到./sparql身份验证。另一方面,基本身份验证是针对端点的./sparql的,但是如果我更改了/sparql身份验证的身份验证,指定了基本身份验证,那么它不应该工作吗?如果没有,我怎么做摘要认证?你可能会发现它的用处。非常感谢!!!这似乎完全是正确的做法。因为我找到了一个解决方法,所以我不会再修改代码来实现它,但是如果我将来需要这样做,我会完全尝试你的解决方案。