问题描述
问题解决了!
我之所以能够与服务交互,是因为我没有添加带有 OAUTH2_ 的服务访问策略策略来授予对所需服务的访问权限。
问题 我正在使用 Liferay 7.3 GA6,使用 OAuth 2 管理面板,我已将应用程序配置为下图。 OAuth2 application definition in Liferay 7.3
在范围选项卡中,我已授予所有可用权限。
然后我尝试执行以下 graphql 调用。
-
获取oauth2令牌(成功)
curl --location --request POST 'https://my_host/o/oauth2/token'
--header '内容类型:应用程序/x-www-form-urlencoded'
--data-urlencode 'client_id=id1234'
--data-urlencode 'client_secret=secret1234'
--data-urlencode 'grant_type=password'
--data-urlencode 'username=email_address'
--data-urlencode '密码=密码'
我用假数据替换了真实数据。
此操作成功,我获得了访问令牌和刷新令牌。
-
调用 graphql 操作(失败)
curl --location --request POST 'https://my_host/o/graphql'
--header '授权:承载 9c7222375513be53a5ef5be5471961d9a3627c1e27ab8aceb92edc43218ea'
--header '内容类型:应用程序/json'
--data-raw '{"query":"{\n site(siteKey: "38413"){\n id\n name\n }\n}","variables":{}}'
阅读文档我看到访问令牌应该通过授权标头传递。无论如何我得到以下错误
{
"errors": [
{
"message": "Exception while fetching data (/site) : java.lang.SecurityException: Access denied to com.liferay.portal.kernel.service.GroupService#getGroup","locations": [],"errorType": "DataFetchingException","path": null,"extensions": {
"exception": {
"errno": 401
},"code": "Unauthorized"
}
}
],"data": {
"site": null
}
}
有人可以帮我吗?
谢谢, 格拉齐亚诺
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)