我在托管虚拟机上使用googleappengine和googlecloud端点。
我有非常简单的服务:
public List<DBObject> getCustomers(User user) throws OAuthRequestException {
authService.check(user);
DB db = databaseClient.getDb();
List<DBObject> customers = db.getCollection(Customer.COLLECTION).find().toArray();
return customers;
}
它应该接收经过身份验证的用户作为参数,并用我的authservice检查它,如果用户未被授权,它将抛出oauthrequestexception。
在开发人员服务器上一切正常,但在生产(即在托管虚拟机上)上,我收到以下错误:
HTTP ERROR: 500
Problem accessing /_ah/spi/com.company.api.MyApi.getCustomers.
Reason: com.google.apphosting.api.ApiProxy$FeatureNotEnabledException: This feature is disabled for Managed VMs.
和日志:
com.google.apphosting.vmruntime.VmApiProxyDelegate convertApiResponseRpcErrorToException:
RPC failed, API=user.GetOAuthUser : FEATURE_DISABLED : This feature is disabled for Managed VMs.
有没有办法避免这个错误?为什么oauth在托管虚拟机上被禁止?
我当然不能离开托管vm,但我还需要oauth正常工作。
1条答案
按热度按时间vsnjm48y1#
根据google的文档,托管vms仍处于beta版本,因此在托管vms的“或完整版本”的未来版本中,您将得到(可能/将要)修复的“user.getoauthuser:feature\u disabled”错误。