java—为什么对托管虚拟机禁用oauth?

qnzebej0  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(301)

我在托管虚拟机上使用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正常工作。

vsnjm48y

vsnjm48y1#

根据google的文档,托管vms仍处于beta版本,因此在托管vms的“或完整版本”的未来版本中,您将得到(可能/将要)修复的“user.getoauthuser:feature\u disabled”错误。

相关问题